Hadoop 3.0的新特性
Erasure Coding
HDFS数据冗余策略
以及其他:
1.最低要求的Java版本从Java 7增加到Java8
现在,已针对Java 8的运行时版本编译了所有HadoopAR。仍在使用Java7或更低版本的用户必须升级到java8.
2.支持HDFS中的纠删码
纠删码是一种持久存储数据的方法,可节省大量空间。与标准HDFS副本机制的3倍开销相比,像Reed-so1omon(10,4)这样的标准编码的空间开销是1.4倍。
由于纠删码在重建期间会带来额外的开销,并且大多数情况下会执行远程读取,因此传统上已将其用于存储较冷,访问频率较低的数据。
在部署此功能时应考虑纠删码机制的网络和CPU开销。
3.Shel1脚本重写
Hadoop she11 脚本已被重写,以修复许多长期存在的错误并包括一些新功能。Hadoop的开发人员尽管一直在寻求兼容性,但是某些更改可能会破坏现有的安装.
4.MapReduce 任务本地优化
MapReduce增加了对 map output收集器的本地执行的文持,对于shuffle 密集型工作,这可以使性能提高30%或更多。
5,支持两个以上的 NameNode
在之前的版本中,HDFS的高可用最多支持两个NameNode。在HDFS3.x 版本中,通过将编辑复制到法定数量的三个Journa1Node,该体系结构能够容忍系统中任何一个节点的故障。但是,某些部署需要更高的容错度。这个新待性启用了这一点。该功能允许用户运行多个备用NameNode。例如,通过配置三个NameNode和五个JournalNode,群集可以忍受两个节点的放障,而不仅仅是一个节点的故障.
6.多个服务的默认端口己更改
以前,多个Hadoop 服务的默认端口在Linux临时端口范用内(32768-61088)。这意味着在启动时,服各有时会由于与另一个应用程序的冲突而天法鄉定到端口。这些冲突的端口已移出临时范围,具体的端口更改如下:
NameNode 的端口:50070-->9870,8020-->9820,50470-->9871;
Secondary NameNode 的端口:50091-->9869,50090-->9868:
DataNode 的端口:50020-->9867,50010-->9866,50475-->9865,50075 -->9864;
Hadoop KMS 的端口:16000-->9608(HBase的HMaster端口号与Hadoop KMS端口号冲突。两者都使用16000,因此 Hadoop KMs 更改为9600)
7.支持MicrosoftAzure数据湖和阿里云对象存储系统文件系统连接器
Hadoop现在支持与Microsoft Azure数据湖和A1iyun对象存储系统集成,作为与Hadoop兼容的替代文件系统。
8.数据内节点平衡器
单个DataNode可管理多个微盘,在正常的写操作过程中,磁盘将被均匀填充。但是,添加或者换磁盘可能会导现DataNode 内部出配严重偏差。原有的HDFS 平衡器无法处理这种情况。新板本的HDFS中有平衡功能处理,该功能通过hdfs diskblancer CLI调用
9.基于HDFS路由器的联合
基于HDFS路由器的联合添加了一个RPC路由层,该层提供了多个HDFS名称空间的联合视图。这简化了现有HDFS客户端对联合群集的访问。
10.YARN资源类型
YARN资源模型已被通用化,以支持用户定义的CPU和内存以外的可计数资源类型。例如,集群管理员可以定义资源,例如GPU,软件许可证或本地连接的存储。然后可以根据这些资源的可用件来调度YARN任务