1.3 Hadoop 3新特性
由于Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK 1.8重新发布一个新的Hadoop版本,即Hadoop 3.0。Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS可擦除编码、多NameNode支持、MR Native Task优化、YARN container resizing等。Hadoop 3.x以后将会调整方案架构,将MapReduce基于内存+IO+磁盘共同处理数据。改变最大的是HDFS,HDFS通过最近block块计算,根据最近计算原则,本地block块加入到内存先计算,再通过IO共享内存计算区域,最后快速形成计算结果。
根据官方change log(修改日志)的介绍,Hadoop 3新增的特性说明如下:
(1)最低支持JDK 1.8及以上版本。不再支持JDK 1.7。Hadoop版本与JDK版本之间的匹配关系为:
· Apache Hadoop 3.3及更高版本支持Java 8和Java 11(仅运行时)。
· 请用Java 8编译Hadoop。不支持用Java 11编译Hadoop。
· Apache Hadoop从3.0.x到3.2.x目前只支持Java 8。
· Apache Hadoop从2.7.x到2.10.x支持Java 7和Java 8。
(2)YARN Timeline版本升为2.0。
(3)高可靠支持超过2个NameNode节点。如配置3个NameNode和5个JournalNode。
(4)默认端口变化,具体变化如图1-5所示。
图1-5 Hadoop 3的端口变化表
(5)从Hadoop 2.9开始添加了新的模块:Oozie,自此Hadoop拥有5个核心模块,以下是官方模块列表:
· Hadoop Common:支持其他Hadoop模块的常用工具。
· Hadoop分布式文件系统(HDFS):Hadoop用于数据存储的分布式文件系统,提供应用数据的高吞吐量访问。
· Hadoop YARN:用于作业调度和集群资源管理的框架。
· Hadoop MapReduce:基于YARN框架,用于大数据集的处理的分布式并行计算框架。
· Hadoop Ozone:是一个分布式对象存储系统,提供的是一个Key-Value形式的对象存储服务。
(6)Hadoop 3之后,已经不再建议使用root用户启动和管理Hadoop的进程。建议创建一个非root用户来启动和管理Hadoop的进程。建议创建一个名称为hadoop的用户,并设置hadoop用户属于wheel组。