1.纠删码将数据存储空间节省50%
hadoop-3.0之前,HDFS存储方式为每一份数据存储3份,这也使得存储利用率仅为1/3,
hadoop-3.0引入纠删码技术(EC技术),实现1份数据+0.5份冗余校验数据存储方式
2.Shell脚本重写
(1)增加了参数冲突检测,避免重复定义和冗余参数
(2)CLASSPATH, JAVA_LIBRARY_PATH, and LD_LIBRARY_PATH等参数的去重,缩短环境变量
(3)shell脚本重构,将更多的代码加入function中,提供重载,删除重复代码,便于测试
(4)脚本清理和简化
(5)尽可能与当前系统保持兼容
(6)提供一份Hadoop环境变量列表
3.支持多个NameNode
但是Active的NameNode始终只有1个,余下的都是Standby。 Standby NN会不断与JN同步,保证自己获取最新的editlog,并将edits同步到自己维护的image中去,这样便可以实现热备,在发生failover的时候,立马切换成active状态,对外提供服务。同时,JN只允许一个active状态的NN写入
4.Yarn
Yarn Timeline Service V2提供一个通用的应用程序共享信息和共享存储模块。可以将metrics等信息保存。可以实现分布式writer实例和一个可伸缩的存储模块。同时,v2版本在稳定性和性能上面也做出了提升,原先版本不适用于大集群,v2版本使用hbase取代了原先的leveldb作为后台的存储工具。
此外
5.hadoop-3.0要求JDK版本不低于1.8,对之前的Java版本不再提供支持
6.部分服务默认端口修改,不再绑定到Linux临时端口 (HDFS-9427,HADOOP-12811)
Namenode ports: 50470 --> 9871, 50070--> 9870, 8020 --> 9820
Secondary NN ports: 50091 --> 9869,50090 --> 9868
Datanode ports: 50020 --> 9867, 50010--> 9866, 50475 --> 9865, 50075 --> 9864
Kms server ports: 16000 --> 9600 (原先的16000与HMaster端口冲突)
7. 支持MicrosoftAzure Data Lake文件系统
8.Disk Balancer
支持单个Datanode上,不同硬盘间的数据balancer。老版本的hadoop只支持在Datanode之间进行balancer,每个节点内部不同硬盘之间若发生了数据不平衡,则没有一个好的办法进行处理。现在可以通过hdfs diskbalancer命令,进行节点内部硬盘间的数据平衡。该功能默认是关闭的,需要手动设置参数dfs.disk.balancer.enabled为true来开启。