Hadoop最新版本特性
Hadoop是一个开源的分布式计算框架,它的最新版本是3.x系列。以下是Hadoop
3.x版本的一些主要特性:
1.最低Java版本要求的变更
从Hadoop
3.0版本开始,最低Java版本要求从Java
7变更为Java
8。这意味着所有Hadoop的jar都基于Java
8运行版本进行编译执行,仍在使用Java
7或更低Java版本的用户需要升级到Java
8。
2.HDFS支持纠删码(Erasure
Coding)
Hadoop
3.x引入了纠删码技术,这种方法比副本存储更节省存储空间。例如,ReedSolomon
(10,4)标准编码技术只需要1.4倍的空间开销,而标准的HDFS副本技术则需要3倍的空间开销。纠删码通常用于存储不经常使用的数据(冷数据),但也需要注意网络和CPU开销。
3.YARN时间线服务v.2(YARN
Timeline
Service
v.2)
YARN时间线服务v.2被用来应对提高时间线服务的可扩展性、可靠性和增强可用性的挑战。为了替代TimelineService
v.1.x,YARN
Timeline
Service
v.2
alpha
2被提出来,供用户和开发者进行测试,并提供反馈和建议。然而,YARN
Timeline
Service
v.2目前只能用在测试容器中。
4.重写Shell脚本
Hadoop的shell脚本被重写,以修补许多长期存在的bug,并增加一些新的特性。这些更改包括覆盖客户端的jar(Shaded
client
jars)和将hadoop的依赖隔离在一个单一Jar包中,从而避免hadoop依赖渗透到应用程序的类路径中。
5.支持Opportunistic
Containers和Distributed
Sche***ng
Execution
Type
Hadoop
3.x引入了Opportunistic
Containers和Distributed
Sche***ng
Execution
Type的概念,使得应用能够通过Opportunistic的一个执行类型来请求容器,即使在调度时没有可用的资源,这种类型的容器也会分发给NM中执行程序。这有助于提高集群的使用率。
6.MapReduce任务级本地优化
MapReduce添加了映射输出收集器的本地化实现的支持,这对于密集型的洗牌操作(shuffleintensive)jobs,可以带来30%的性能提升。
7.支持多余2个以上的NameNodes
Hadoop
3.x针对HDFS
NameNode的高可用性,提供了支持多余2个以上的NameNodes的功能。这可以通过运行更多备用NameNode来提供更高的容错性,满足一些部署的需求。
8.修改了多重服务的默认端口
之前的Hadoop版本中,多重Hadoop服务的默认端口在Linux临时端口范围内(3276861000),这可能导致一些服务器由于端口冲突而启动失败。这些冲突端口已经被移出临时端口范围,NameNode、SecondaryNameNode、DataNode和KMS都会受到影响。
9.数据节点内置平衡器(Intradatanode
Balancer)
在单一DataNode管理多个磁盘的情况下,数据节点内置平衡器可以在执行普通的写操作时,使每个磁盘的用量保持比较平均的状态。这解决了当添加或者更换磁盘时可能导致的一个DataNode磁盘用量严重不均衡的问题。由于目前HDFS均衡器关注点在于DataNode之间(inter),而不是intra,所以不能处理这种不均衡情况。在Hadoop
3中,通过DataNode内部均衡功能已经可以处理上述情况。
以上就是Hadoop
3.x版本的一些主要特性。随着技术的不断发展,Hadoop的新版本还将继续引入更多的新功能和优化,以适应不断变化的大数据需求。