Hadoop 2.0基本術語解釋
(1) Hadoop 1.0
第一代Hadoop,由分布式存儲系統HDFS和分布式計算框架MapReduce組成,其中,HDFS由一個NameNode和多個DataNode組成,MapReduce由一個JobTracker和多個TaskTracker組成,對應Hadoop版本為Hadoop 1.x和0.21.X,0.22.x。
(2) Hadoop 2.0
第二代Hadoop,為克服Hadoop 1.0中HDFS和MapReduce存在的各種問題而提出的。針對Hadoop 1.0中的單NameNode制約HDFS的擴展性問題,提出了HDFS Federation,它讓多個NameNode分管不同的目錄進而實現訪問隔離和橫向擴展;針對Hadoop 1.0中的MapReduce在擴展性和多框架支持方面的不足,提出了全新的資源管理框架YARN(Yet Another Resource Negotiator),它將JobTracker中的資源管理和作業控制功能分開,分別由組件ResourceManager和ApplicationMaster實現,其中,ResourceManager負責所有應用程序的資源分配,而ApplicationMaster僅負責管理一個應用程序。對應Hadoop版本為Hadoop 0.23.x和2.x。
(3) MapReduce 1.0或者MRv1(MapReduce version 1)
第一代MapReduce計算框架,它由兩部分組成:編程模型(programming model)和運行時環境(runtime environment)。它的基本編程模型是將問題抽象成Map和Reduce兩個階段,其中Map階段將輸入數據解析成key/value,迭代調用map()函數處理后,再以key/value的形式輸出到本地目錄,而Reduce階段則將key相同的value進行規約處理,并將最終結果寫到HDFS上。它的運行時環境由兩類服務組成:JobTracker和TaskTracker,其中,JobTracker負責資源管理和所有作業的控制,而TaskTracker負責接收來自JobTracker的命令并執行它。
(4)MRv2(MapReduce version 2)
MapReduce 2.0或者MRv2具有與MRv1相同的編程模型,唯一不同的是運行時環境。MRv2是在MRv1基礎上經加工之后,運行于資源管理框架YARN之上的MRv1,它不再由JobTracker和TaskTracker組成,而是變為一個作業控制進程ApplicationMaster,且ApplicationMaster僅負責一個作業的管理,至于資源的管理,則由YARN完成。
簡而言之,MRv1是一個獨立的離線計算框架,而MRv2則是運行于YARN之上的MRv1。
(5) MapReduce 2.0或者YARN或者NextGen MapReduce
Hadoop 2.0中的資源管理框架,它是一個框架管理器,為各種框架進行資源分配和提供運行時環境。而MRv2則是運行在YARN之上的第一個計算框架,其他計算框架,比如Spark、Storm等,都正在往YARN上移植。YARN類似于幾年前的資源管理系統mesos和更早的Torque。
(6) HDFS Federation
Hadoop 2.0中對HDFS進行了改進,使NameNode可以橫向擴展成多個,其中,每個NameNode分管一部分目錄,這不僅增強了HDFS的擴展性,也使HDFS具備了隔離性。
【參考資料】
Cloudera blog:http://blog.cloudera.com/blog/2012/10/mr2-and-yarn-briefly-explained/
原文鏈接:http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-terms-explained/
【編輯推薦】