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來開啟。
