0.14.1
HDFS中更好的校验和。校验和不再存储在并行HDFS文件中,而是由数据节点与块一起直接存储。这对于命名节点更加有效,并且还提高了数据完整性。
管道:MapReduce的C ++ API
Eclipse插件,包括HDFS浏览,作业监视等。
HDFS中的文件修改时间。
1.0
安全
HBase(append / hsynch / hflush和安全性)
webhdfs(全面支持安全性)
性能增强了对HBase对本地文件的访问
其他性能增强,错误修复和功能
1.1
从主干向后移植HDFS的许多性能改进
使用SPNEGO而不是Kerberized SSL进行HTTP事务的安全性方面的改进
将任务跟踪器的默认最小心跳从3秒降低到300毫秒,以增加小型集群上的作业吞吐量
Gridmix v3的端口
在hadoop-config.sh中设置MALLOC_ARENA_MAX以解决RHEL-6中的glibc问题
可拆分的bzip2文件
当然,它也具有与1.0.4版相同的安全修复程序。
1.2
DistCp v2向后移植
JobTracker的Web服务
WebHDFS增强功能
任务放置和副本放置策略接口的扩展
向后移植脱机图像查看器
名称节点在编辑日志损坏的情况下更强大
将节点组级别添加到NetworkTopology
将“未设置”添加到配置API
2.0
HDFS HA for NameNode (manual failover)
YARN aka NextGen MapReduce
HDFS Federation
Performance
Wire-compatibility for both HDFS and YARN/MapReduce (using protobufs)
2.2
YARN-Hadoop的通用资源管理系统,允许MapReduce和其他其他数据处理框架和服务
HDFS的高可用性
HDFS联盟
HDFS快照
NFSv3访问HDFS中的数据
支持在Microsoft Windows上运行Hadoop
在hadoop-1.x上构建的MapReduce应用程序的二进制兼容性
与生态系统中其他项目的大量集成测试
2.3
支持HDFS中的异构存储层次结构。
HDFS数据的内存中缓存,具有集中式管理和管理功能。
通过YARN分布式缓存中的HDFS简化了MapReduce二进制文件的分发。
2.4
支持HDFS中的访问控制列表
对HDFS中的滚动升级的本机支持
为HDFS FSImage使用协议缓冲区以实现平稳的操作升级
HDFS中完整的HTTPS支持
支持YARN ResourceManager的自动故障转移
使用应用程序历史记录服务器和应用程序时间轴服务器增强了对YARN上新应用程序的支持
通过抢占支持YARN CapacityScheduler中的强大SLA
2.5
使用HTTP代理服务器时的身份验证改进。
一个新的Hadoop Metrics接收器,允许直接写入Graphite。
Hadoop兼容文件系统工作规范。
支持POSIX样式的文件系统扩展属性。
OfflineImageViewer通过WebHDFS API浏览fsimage。
NFS网关的可支持性改进和错误修复。
HDFS守护程序的现代化Web UI(HTML5和Javascript)。
YARN的REST API支持提交和杀死应用程序。
YARN的时间轴存储的Kerberos集成。
FairScheduler允许在运行时在任何指定的父队列下创建用户队列。
2.6
Hadoop常见
HADOOP-10433-密钥管理服务器(测试版)
HADOOP-10607-凭据提供程序(测试版)
Hadoop HDFS
异构存储层-第二阶段
HDFS-5682-用于异构存储的应用程序API
HDFS-7228 -SSD存储层
HDFS-5851-内存作为存储层(测试版)
HDFS-6584-支持档案存储
HDFS-6134-透明的静态数据加密(测试版)
HDFS- 2856-在无需root用户访问的情况下操作安全的DataNode
HDFS-6740-热插拔驱动器:支持添加/删除数据节点卷,而无需重新启动数据节点(测试版)
HDFS-6606 -AES支持更快的线路加密
Hadoopyarn
YARN-896-在YARN中支持长期运行的服务
YARN-913-应用程序的服务注册表
YARN-666-支持滚动升级
YARN-556 -ResourceManager的工作保留重启
YARN-1336 -NodeManager的保留容器重新启动
YARN-796-调度期间的支持节点标签
YARN-1051-在Capacity Scheduler(beta)中支持基于时间的资源保留
YARN-1964-支持在Docker容器中本地运行应用程序(alpha)
2.7
此版本放弃了对JDK6运行时的支持,并且仅与JDK 7+一起使用。
此版本尚未准备好用于生产。关键问题正在通过测试和下游采用得到解决。生产用户应等待2.7。1 / 2 .7.2释放。
Hadoop常见
HADOOP-9629-支持Windows Azure存储-Blob作为Hadoop中的文件系统。
Hadoop HDFS
HDFS-3107-支持文件截断
HDFS-7584-支持每种存储类型的配额
HDFS-3689-支持具有可变长度块的文件
Hadoopyarn
YARN-3100-使YARN授权可插入
YARN-1492 -YARN本地化资源的自动共享,全局缓存(测试版)
Hadoop MapReduce
MAPREDUCE-5583-能够限制作业的正在运行的Map / Reduce任务
MAPREDUCE-4815-对于具有许多输出文件的超大型作业,可以加快FileOutputCommitter的速度。
2.8
共同
支持异步呼叫重试和故障转移,可在重试工作中用于异步DFS实现。
可以通过通用的servlet过滤器为UI提供跨框架脚本(XFS)防护。
S3A改进:增加了插入任何AWSCredentialsProvider的功能,除了XML配置文件之外,还支持从hadoop凭据提供程序API读取s3a凭据,支持Amazon STS临时凭据
WASB的改进:添加了附加API支持
Build增强功能:将开发支持替换为Yetus的包装,提供基于docker的解决方案来设置构建环境,删除CHANGES.txt并重新制作更改日志和发行说明。
添加对LDAP组映射服务的posixGroups支持。
支持与Azure数据湖(ADL)集成,作为与Hadoop兼容的替代文件系统。
HDFS
WebHDFS增强功能:在WebHDFS中集成CSRF预防过滤器,在WebHDFS中支持OAuth2,通过WebHDFS禁用/允许快照
允许长时间运行的Balancer使用keytab登录
添加ReverseXML处理器,该处理器从XML文件重建fsimage。这将使创建fsimage进行测试变得容易,并且在损坏时手动编辑fsimage。
支持嵌套加密区域
DataNode生命线协议:一种用于报告DataNode活跃度的替代协议。这可以防止NameNode在心跳处理受到延迟的高度过载的群集中错误地将DataNode标记为陈旧或死机。
将HDFS操作的调用者上下文记录到审核日志中
一个新的Datanode命令,用于驱逐写入器,该命令在缓慢的写入器阻止数据节点退役时很有用。
yarn
Windows中的NodeManager CPU资源监视。
NM关闭更加顺畅:NM将立即注销到RM,而不是等待超时成为LOST(如果未启用NM工作保留)。
添加了在AM尝试卡住的情况下使特定AM尝试失败的功能。
YARN审核日志中的CallerContext支持。
ATS版本控制支持:一种新的配置,用于指示时间轴服务版本。
映射还原
允许节点标签在提交MR作业时被指定
添加新工具以将汇总的日志合并到HAR文件中
2.9
共同
HADOOP资源估计器。有关更多详细信息,请参见用户文档。
HDFS
基于HDFS路由器的联盟。有关更多详细信息,请参见用户文档。
yarn
YARN时间轴服务v.2。有关更多详细信息,请参见用户文档。
yarn联合会。有关更多详细信息,请参见用户文档。
机会容器。有关更多详细信息,请参见用户文档。
YARN Web UI v.2。有关更多详细信息,请参见用户文档。
通过API更改队列配置(仅在Capacity Scheduler上受支持)。有关更多详细信息,请参见用户文档。
更新已分配/正在运行的容器的资源和执行类型(仅在Capacity Scheduler上受支持)。有关更多详细信息,请参见用户文档。
3.0
最低要求的Java版本从Java 7增加到Java 8
现在已针对Java 8的运行时版本编译了所有Hadoop JAR。仍在使用Java 7或更低版本的用户必须升级到Java 8。
支持HDFS中的擦除编码
与复制相比,擦除编码是一种持久存储数据的方法,可节省大量空间。与标准HDFS复制的3倍开销相比,像Reed-Solomon(10,4)这样的标准编码的空间开销为1.4倍。
由于擦除编码在重建期间会带来额外的开销,并且大部分执行远程读取,因此传统上已将其用于存储较冷,访问频率较低的数据。用户在部署此功能时应考虑擦除编码的网络和CPU开销。
HDFS删除编码文档中提供了更多详细信息。
YARN时间轴服务v.2
我们正在介绍YARN时间轴服务主要版本:v.2的早期预览(alpha 2)。YARN Timeline Service v.2解决了两个主要挑战:提高Timeline Service的可伸缩性和可靠性,以及通过引入流和聚合来增强可用性。
提供了YARN Timeline Service v.2 alpha 2,以便用户和开发人员可以对其进行测试并提供反馈和建议,以使其可以替代Timeline Servicev.1.x。仅应以测试能力使用。
YARN时间轴服务v.2文档中提供了更多详细信息。
Shell脚本重写
Hadoop Shell脚本已被重写,以修复许多长期存在的错误并包括一些新功能。尽管一直在寻求兼容性,但是某些更改可能会破坏现有的安装。
不兼容的更改记录在发行说明中,并在HADOOP-9902上进行了相关讨论。
Unix Shell指南文档中提供了更多详细信息。高级用户也将对Unix Shell API文档感到满意,该文档描述了许多新功能,尤其是与可扩展性有关的功能。
带阴影的客户罐
2.x版本中提供的hadoop-client Maven工件将Hadoop的可传递依赖项拉到Hadoop应用程序的类路径中。如果这些传递依赖项的版本与应用程序使用的版本冲突,则可能会出现问题
HADOOP-11804添加了新的hadoop-client-api和hadoop-client-runtime工件,将Hadoop的依赖项隐藏在一个jar中。这样可以避免将Hadoop的依赖项泄漏到应用程序的类路径中。
支持机会容器和分布式计划。
引入了ExecutionType的概念,应用程序现在可以请求执行类型为Opportunistic的容器。即使调度时没有可用资源,也可以在NM上调度这种类型的容器以执行。在这种情况下,这些容器将在NM处排队,等待资源可用以启动它。机会容器的优先级比默认的“ 保证”容器低,因此如果需要,可以抢占机会以为“保证”容器腾出空间。这将提高群集利用率。
默认情况下,机会容器由中央RM分配,但是还添加了支持,以允许由实现为AMRMProtocol拦截器的分布式调度程序分配机会容器。
请参阅文档以获取更多详细信息。
MapReduce任务级本机优化
MapReduce增加了对地图输出收集器的本机实现的支持。对于洗牌密集型工作,这可以使性能提高30%或更多。
有关更多详细信息,请参见MAPREDUCE-2841的发行说明。
支持两个以上的NameNode。
HDFS NameNode高可用性的初始实现是为单个活动NameNode和单个Standby NameNode提供的。通过将编辑复制到法定数量的三个JournalNode,该体系结构能够容忍系统中任何一个节点的故障。
但是,某些部署需要更高的容错度。这项新功能启用了此功能,该功能允许用户运行多个备用NameNode。
例如,通过配置三个NameNode和五个JournalNode,群集可以承受两个节点的故障,而不仅仅是一个节点的故障。
在HDFS高可用性文档已经更新了关于如何配置两个以上NameNodes更多的指令。
多个服务的默认端口已更改。
以前,多个Hadoop服务的默认端口在Linux临时端口范围内(32768-61000)。这意味着在启动时,服务有时会由于与另一个应用程序的冲突而无法绑定到端口。
这些冲突的端口已移出临时范围,从而影响NameNode,Secondary NameNode,DataNode和KMS。我们的文档已适当更新,但请参阅HDFS-9427和HADOOP-12811的发行说明,以获取端口更改列表。
支持Microsoft Azure Data Lake和Aliyun对象存储系统文件系统连接器
Hadoop现在支持与Microsoft Azure数据湖和Aliyun对象存储系统集成,作为与Hadoop兼容的替代文件系统。
数据内节点平衡器
单个DataNode可管理多个磁盘。在正常的写操作过程中,磁盘将被均匀填充。但是,添加或替换磁盘可能会导致DataNode内部出现严重偏差。现有的HDFS平衡器无法处理这种情况,该平衡器自身涉及DN之间的偏移,而不涉及内部DN偏移。
这种情况由新的内部DataNode平衡功能处理,该功能通过hdfs diskbalancer CLI 调用。有关更多信息,请参见《HDFS命令指南》中的磁盘平衡器部分。
重做的守护程序和任务堆管理
对Hadoop守护程序以及MapReduce任务的堆管理进行了一系列更改。
HADOOP-10950引入了用于配置守护程序堆大小的新方法。值得注意的是,现在可以根据主机的内存大小进行自动调整,并且不建议使用HADOOP_HEAPSIZE变量。有关更多详细信息,请参见HADOOP-10950的完整发行说明。
MAPREDUCE-5785简化了map的配置并减小了任务堆大小,因此不再需要在任务配置和Java选项中都指定所需的堆大小。已经指定两者的现有配置不受此更改的影响。有关更多详细信息,请参见MAPREDUCE-5785的完整发行说明。
S3Guard:S3A文件系统客户端的一致性和元数据缓存
HADOOP-13345向Amazon S3存储的S3A客户端添加了一项可选功能:能够将DynamoDB表用作文件和目录元数据的快速且一致的存储。
有关更多详细信息,请参见S3Guard。
基于HDFS路由器的联合
基于HDFS路由器的联合添加了一个RPC路由层,该层提供了多个HDFS名称空间的联合视图。这与现有的ViewFs和HDFS Federation功能相似,除了安装表是在服务器端由路由层而不是在客户端管理的。这简化了现有HDFS客户端对联合群集的访问。
有关更多详细信息,请参见HDFS-10467和基于HDFS路由器的联合文档。
Capacity Scheduler队列配置的基于API的配置
容量调度程序的OrgQueue扩展通过提供用户可以调用以修改队列配置的REST API,提供了一种编程方式来更改配置。这使管理员可以在队列的administer_queue ACL中自动进行队列配置管理。
有关更多信息,请参见YARN-5734和Capacity Scheduler文档。
YARN资源类型
YARN资源模型已被通用化,以支持用户定义的CPU和内存以外的可计数资源类型。例如,集群管理员可以定义资源,例如GPU,软件许可证或本地连接的存储。然后可以根据这些资源的可用性来调度YARN任务。
有关更多信息,请参见YARN-3926和YARN资源模型文档。
3.1
Yarn Service框架提供了一流的支持和API,以在YARN中本地托管长期运行的服务。
简而言之,它充当用于在YARN上管理容器化服务的容器编排平台。它在YARN中支持docker容器和传统的基于过程的容器。
有关更多详细信息,请参见用户文档。
YARN上一流的GPU调度和隔离(适用于docker / non-docker容器)。
有关更多详细信息,请参见用户文档。
YARN上一流的FPGA调度和隔离(适用于docker / non-docker容器)。
有关更多详细信息,请参见用户文档。
在YARN中支持更具表现力的放置约束。这样的约束对于应用程序的性能和弹性至关重要,特别是那些包含长期运行的容器(例如服务,机器学习和流工作负载)的应用程序。
例如,将作业的分配放在同一机架上(亲和性约束)以减少网络成本,在机器之间分散分配(反亲和性约束)以最大程度地减少资源干扰或允许最多特定数量的分配可能是有益的。节点组中分配的数量(基数约束)以在两者之间取得平衡。放置决策也会影响弹性。例如,放置在同一群集升级域中的分配将同时脱机。
有关更多详细信息,请参见用户文档。
支持管理员为队列指定绝对资源(X内存,Y VCore,Z GPU等),而不是提供基于百分比的值。这为管理员提供了更好的控制,以配置给定队列所需的资源量。
有关更多详细信息,请参见用户文档。
提供的存储允许将HDFS外部存储的数据映射到HDFS并从中寻址。通过将新的存储类型PROVIDED引入DataNode中的媒体集,它基于异构存储而构建。
有关更多详细信息,请参见用户文档。
3.2
YARN中的节点属性支持
节点属性有助于根据节点的属性在节点上标记多个标签,并支持基于这些标签的表达来放置容器。
节点属性文档中提供了更多详细信息。
YARN上的Hadoop潜水艇
Hadoop Submarine使数据工程师可以在数据驻留的同一Hadoop YARN集群上轻松开发,训练和部署深度学习模型(在TensorFlow中)。
Hadoop Submarine文档中提供了更多详细信息。
存储策略满意度
支持HDFS(Hadoop分布式文件系统)应用程序,以便在文件/目录上设置存储策略时在存储类型之间移动块。
存储策略满意度文档中提供了更多详细信息。
ABFS文件系统连接器
支持最新的Azure Datalake Gen2存储。
增强型S3A连接器
支持增强的S3A连接器,包括对受限制的AWS S3和DynamoDB IO的更好的弹性。
升级YARN长期服务
通过YARN本机服务API和CLI支持长期运行的容器的就地无缝升级。
YARN服务升级文档中提供了更多详细信息。
参考资料: