Apache Hadoop 2.8.2
Hadoop2.8.2在之前的小版本(hadoop-2.7.3)的release之上构建的。
下面是对主要的特性和改进的概述:
Common
1.支持异步调用重试和故障转移,它通过重试可以被使用在异步dfs实现中。
2.通过一个共同的servlet过滤器,可以为ui提供跨帧脚本(XFS)预防
3.对S3A进行了改进。
4.WASB改进:增加了append API的支持
5.构建增强:使用包装的Yetus替换dev-support,提供基于docker的解决方案来设置构建环境,移除CHANGES.txt文件,重新编写变更日志和发布说明。
6.为LDAP 组映射服务增加posixGroups 的支持
HDFS
1.WebHDFS功能增强:在WebHDFS中添加CSRF预防过滤器,在WebHDFS中支持OAuth2功能,通过WebHDFS控制快照功能
2.允许使用keytab登录长时间运行的Balancer
3.添加ReverseXML处理程序,用于从XML文件中重构fsimage。这个使得创建用于测试的fsimage变得更加容易,并且可以手动编辑fsimage文件当fsimage文件损坏的时候。
4.支持嵌套加密区域
5.DataNode Lifeline Protocol:一个可供选择的协议用于报告DataNode的活跃度,这个可以防止在处理心跳延迟的高负载集群中NameNode错误的把DataNode标记为stale或者dead状态
6.记录HDFS的操作者的上行下文到审计日志中
7.给DataNode增加了停止写的命令,这个命令在DataNode正在退役但被慢写阻塞时很有用
YARN
1.在窗口中增加NodeManagerCPU资源监控信息
2.更加优雅的停止NM: 当停止NM时,NM会主动立即取消到RM的注册,而不是等待超时被标记为LOST(如果没有启动NM保存功能)
3.在AM尝试被卡主的情况下,主动停止指定的AM的尝试。
4.CallerContext支持写到审计日志中.
5.ATS版本支持:添加一个新的配置用于表示timeline服务的版本
MAPREDUCE
1.提交MR作业时允许指定特定的标签。
2.添加了一个用于将聚集的日志到合并成HAR文件的工具。
Apache Hadoop 2.9.0
Hadoop2.9.0在之前的小版本(hadoop-2.8.2)的release之上构建的。
下面是对主要的特性和改进的概述:
Common
1.HADOOP资源评估器:详情见 user documentation。
HDFS
1.基于HDFS路由的federation。详情见: user documentation。
YARN
1.Yarn Timeline Service v.2。详情见user documentation.
3.YARN Federation. 详情见 user documentation.
4.Opportunistic Containers. 详情见 user documentation.
5.YARN Web UI v.2. 详情见 user documentation.
6.通过API改变队列的配置(只支持容量调度)。详情见 user documentation。
7.更新已分配或者运行中容器的资源和执行类型(只支持容量调度)。详情见user documentation。
Apache Hadoop 3.0.0
Overview
1.最低支持版本从java 7升级到java 8
2.HDFS上支持纠删码技术
纠删码方法比副本机制更加节省存储空间,标准的编码比如 Reed-Solomon (10,4)拥有1.4x空间消耗,相比较副本机制的3x的空间消耗节省了更多的空间。
因为纠删码在重构的过程中需要额外的开销,并且主要执行远程读取,传统上它用于存储更冷,访问更少的数据,在部署这个特性时,用户应该考虑网络和CPU的开销。
更多的细节查看文档HDFS Erasure Coding。
3.YARN Timeline 服务 v.2
我们使用简洁的概览介绍v.2(alpha 2)版本的YARN timeline服务的主要的修改。v.2版本的Yarn timeline服务解决了两个主要的挑战:提高timeline服务的可扩展性和可靠性,通过引入流和聚合增强可用性。
v.2(alpha 2)版本的YARN timeline服务被提供给用户和开发者用于测试它,并提供反馈和建议用于替代v.1.x版本的timeline服务。它应该只能用在测试的环境中。
4. 重写shell脚本
Hadoop shell脚本已经被重写为了修复长期存在的bug,并加入了一些新的特性。虽然重视兼容性,但是一些修改可能会破坏现有的安装。兼容性的改变被记录在了release note中,相关在讨论在HADOOP-9902。更详细的文档在Unix Shell Guide 。能力很强的用户也可以去看api文档 Unix Shell API ,他描述了更多的新的关于扩展性的函数。
5.隐藏客户端jar包
在2.x版本的hadoop-client的maven构造,将hadoop传递依赖项拉到hadoop应用程序的classpath上,如果这些传递依赖的版本与应用程序依赖的版本冲突,可能会出现问题。
HADOOP-11804 添加了hadoop-client-api和hadoop-client-runtime的jar包,隐藏 hadoop依赖到单个jar,避免泄露hadoop依赖到应用程序的classpath上。
6. 支持Opportunistic容器和Distributed调度
Opportunistic Containers可以在NM没有空闲的资源的情况下先分配到NM排队等待执行,当资源满足条件时就可以开始执行,这种容器的优先级比默认的Guaranteed容器优先级低,因此如果需要的话,会腾出空间给Guaranteed容器先执行,这个可以提高集群的利用率。
Opportunistic 容器是默认被配置在集中式RM中,但是也支持实现了AMRMProtocol 拦截器的分布式调度。详情见documentation。
7.MapReduce任务级别的本地优化
MapReduce已经添加了支持本地map输出收集器的实现,对于shuffle密集型的作业,这个可以提升性能30%以上,详情见 MAPREDUCE-2841。
8. 支持超过2个NameNode
在最初实现的HDFS高可靠的时候只有一个Active的NameNode和一个Standby的NameNode,通过发送editlog到JournalNode,可以容忍一个NameNode挂掉。
然而,有些部署需要更高程度的容错,在这个新特性中允许用户运行多个Standby NameNode。例如:配置3个NameNode,5个JournalNode,集群可以容忍失败2个节点而不是1个.具体配置见HDFS high-availability documentation
9.支持微软的 Azure Data Lake和阿里云的Object Storage System
10.Intra-datanode平衡器
一个DataNode可以管理多个磁盘。在正常的写操作下,数据会被均匀的写到各个磁盘。但是,添加或者替换磁盘会导致严重的倾斜,通过HDFS balancer是处理不了这个问题的,它关心的是datanode之间的数据是否倾斜,而不是DataNode内部的数据是否倾斜。
这种情况被处理通过intra-DataNode平衡功能,他是通过命令 hdfs diskbalancer CLI 被调起来的,详情见磁盘平衡部分HDFS Commands Guide。
11. 修改了守护进程和任务堆管理器
对于hadoop的守护进程和MapReduce任务的堆内存管理器进行了一系列的改变。
HADOOP-10950介绍了配置守护进程堆大小的新的方法。尤其,自动调优可能基于主机的内存大小,HADOOP_HEAPSIZE变量已经过时了。
MAPREDUCE-5785简化了配置map和reduce任务堆内存的大小,因此对于任务的堆内存大小的参数不再需要指定了,已经指定了堆大小参数的配置不受这个改变的影响。
12. 基于HDFS路由的Federation
基于HDFS路由的Federation添加了一个RPC路由层用于访问多个HDFS命名空间,这个和已经存在的ViewFs很像,不同的是由路由层管理的挂载表被放到了服务器端而不是客户端,这个简化了客户端对联邦集群的访问。详情见HDFS-10467和HDFS Router-based Federation documentation。
13.基于API配置容量调度队列
OrgQueue扩展了容量调度,提供了通过程序调用REST API去改变队列的配置信息,这使得管理员可以动态的管理队列配置文件。详见YARN-5734 和Capacity Scheduler documentation
14.YARN资源类型
Yarn的资源模型已经普遍可以支持用户定义,而不仅仅是CPU和内存这些可计算的资源类型,例如:管理员可以定义 GPU、软件许可证或者本地附件存储。Yarn任务可以调度这些有效的资源。详见 YARN-3926和YARN resource model documentation。
Apache Hadoop 3.1.0
Hadoop3.1.0在之前的小版本(hadoop-3.0)的release之上集成很多重要的增强功能。
Overview
1.Yarn服务器框架提供了一流的支持和APIs用于在yarn中本地托管长时间运行的服务。
简单的说,他作为一个容器的服务调度平台,用于管理yarn上的容器化的服务。在yarn中支持docker容器和传统的基于容器的进程。详情见 user documentation。
2. 一流的GPU调度和隔离
在yarn上支持一流的GPU调度和隔离(docker和非docker容器都支持),详见 user documentation。
3. 一流的FPGA调度和隔离
在yarn上支持一流的FPGA调度和隔离(docker和非docker容器都支持),详见 user documentation。
4. 在yarn中支持更富有表现力的放置约束。
在yarn中支持更富有表现力的放置约束,这些约束在application的性能和弹性方面具有决定性的作用,尤其是在长时间运行的容器方面,例如:服务类型的作业,机器学习和流类型的作业等。
比如说,该放置约束在下面的方面是有益的,给一个作业集中分配到相同的机架上(affinity约束)减少网络开销,跨机器的分散分配(anti-affinity约束)用于最小化的资源干扰,允许在节点组中指定数量的分配(cardinality 约束)用于在两者之间取得平衡。
放置约束在弹性方面也有影响,例如,位于相同集群升级域的分配将会同时下线。
5.支持指定队列使用的绝对资源
支持管理员指定队列的绝对资源(X Memory, Y VCores, Z GPUs, etc.)替代之前的基于百分比的值,这给管理员提供了更好的方式控制给定队列的资源数量。详情见user documentation。
6.支持外部数据映射到hdfs
提供了一种存储,该存储允许保存在hdfs外部的数据映射到hdfs,并且从hdfs寻址。该存储是建立在异构存储之上,通过在DataNode的异构存储介质中添加了一个新的存储类型PROVIDED实现的。详情见user documentation。
Apache Hadoop 3.2.0
Hadoop3.2.0在之前的小版本(hadoop-3.1)的release之上集成很多重要的增强功能。
这是3.2系列的第一个发布版本,他还没有完全可用,还没有准备好用于生产中。
Overview
鼓励用户阅读完整的发布说明,该页面提供了主要更改的概述。
1.在yarn中支持节点属性
节点属性有助于根据节点的属性在节点上标记多个标签,支持基于这些标签的表达式放置容器。详情见Node Attributes。
2.支持Hadoop Submarine运行在yarn上
Hadoop Submarine允许数据工程师很容易的在数据所在的yarn集群中开发、训练和部署深度学习模型(在TensorFlow中)。详情见 Hadoop Submarine
3.存储策略满意因子
当在文件/目录上设置存储策略后,支持hdfs应用程序在不同的存储类型之间移动块。详情见 Storage Policy Satisfier。
4.ABFS文件系统连接器
支持最新的Azure Datalake Gen2 Storage。
5.增强的S3A连接器
支持增强的S3A连接器,包括更好的弹性的限制AWS S3和DynamoDB的IO。
6.升级yarn的长时间运行服务功能
支持通过yarn本地服务API和CLI对长时间运行的容器进行就地无缝升级。详情见 YARN Service Upgrade。