1、Minimum required Java version increased from Java 7 to Java 8
所有的Hadoop JARs针对运行时版本的Java 8被编译。仍在使用Java 7或更低版本的用户必须升级至Java 8。
2、Support for erasure encoding in HDFS
HDFS支持纠删码。与副本相比纠删码是一种更节省空间的数据持久化存储方法。像Reed-Solomon这种标准编码用于1.4倍空间开销,而之前的HDFS副本相比则是3倍空间开销。
既然纠删码主要的额外开销是在重建和执行远程读,它习惯上用于存储冷数据,即不经常访问的数据。当部署这个新特性时用户应该考虑纠删码的网络和CPU开销。
3、YARN Timeline Service v.2
引入了Yarn时间抽服务v.2,应对两大挑战:改善时间轴服务的可伸缩性和可靠性,通过引入流和聚合增强可用性。
4、Shell script rewrite
shell脚本重写,解决了之前的很多长期存在的bug。
5、MapReduce task-level native optimization
MR任务级本地优化。MapReduce添加了Map输出collector的本地实现。对于shuffle密集型作业,这将会有30%以上的性能提升。
6、Support for more than 2 NameNodes.
允许用户运行多个Standby NN,更高的容错性。比如,通过配置3个NN和5个JournalNodes,集群能够容忍2个NN宕机而不是之前的一个。
7、Support for Microsoft Azure Data Lake filesystem connector
集成Microsoft Azure Data Lake
8、Intra-datanode balancer
数据节点内在均衡器,之前单个数据节点是可以管理多个磁盘目录的。正常写入操作,各磁盘会被均匀填满。然而,当添加或替换磁盘时可能导致DataNode严重内斜。
这种情况现有的HDFS balancer是无法处理的。这种情况是由新intra-DataNode平衡功能来处理。通过hdfs diskbalancer CLI来调用。
9、Reworked daemon and task heap management
Hadoop守护进程和MapReduce任务堆内存管理的一系列变化。
HADOOP-10950
介绍了配置守护集成heap大小的新方法。主机内存大小可以自动调整,HADOOP_HEAPSIZE已弃用。
MAPREDUCE-5785
map和reduce task堆大小的配置方法,所需的堆大小不再需要通过任务配置和Java选项实现。已经指定的现有配置不受此更改影响。