從計算框架MapReduce看Hadoop1.0和2.0的區別


一、1.0版本

主要由兩部分組成:編程模型運行時環境

編程模型為用戶提供易用的編程接口,用戶只需編寫串行程序實現函數來實現一個分布式程序,其他如節點間的通信、節點失效,數據切分等,則由運行時環境完成。

基本編程模型將問題抽象成MapReduce兩個階段,Map階段將輸入數據解析成key/value,迭代調用map()函數后,再以key/value的形式輸出到本地目錄;Reduce階段則將key相同的value進行歸約處理,並將最終結果寫入到HDFS

運行時環境由JobTrackerTaskTracker兩類服務組成,JobTracker負責資源管理和所有作業的控制,TaskTracker負責接收來自JobTracker的命令並執行。


二、2.0版本

2.0版本在編程模型上是一樣的,但是在運行時環境上引入全新的資源管理框架:YARN,將JobTracker中的資源管理作業控制功能分開,分別由兩個不同進程ResourceManagerApplicationMaster實現,ResourceManager負責所有應用程序的資源分配,Application負責管理一個應用程序。


三、其他區別

在HDFS方面,2.0版本引入HDFS Federation,它讓多個NameNode分管不同的目錄進而實現訪問隔離和橫向擴展,同時徹底解決NameNode單點故障問題。


四、總結

可以看出,在計算框架MapReduce方面,1.0和2.0的主要差異還是在資源管理方面,YARN的引入讓MapReduce在擴展性和多框架支持方面更加完善。而存儲系統引入HDFS聯盟來解決1.0版本的擴展問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM