更新時間:2022年09月05日14時25分 來源:傳智教育 瀏覽次數(shù):
Hadoop發(fā)行版本分為開源社區(qū)版和商業(yè)版,社區(qū)版是指由Apache軟件基金會維護的版本,是官方維護的版本體系。商業(yè)版Hadoop是指由第三方商業(yè)公司在社區(qū)版Hadoop基礎上進行了一些修改、整合以及各個服務組件兼容性測試而發(fā)行的版本,比較著名的有Cloudera公司的CDH版本。
自Hadoop誕生以來,主要分為Hadoop1、Hadoop2和Hadoop3三個系列的多個版本。Hadoop2.x版本指的是第2代Hadoop,它是從Hadoop1.x發(fā)展而來的,并且相對于Hadoop1.x來說,有很多改進。Hadoop1.x架構(gòu)中的HDFS和MapReduce存在以下缺陷:
(1)HDFS中的NameNode、SecondaryNode單點故障,風險比較大。其次,NameNode內(nèi)存受限不好擴展,因為Hadoop1.x版本中的HDFS只有一個NameNode,并且要管理所有的DataNode。
(2)MapReduce中的JobTracker職責過多,訪問壓力太大,會影響系統(tǒng)穩(wěn)定。除此之外,MapReduce難以支持除自身以外的框架,擴展性較低。
Hadoop2.x版本為克服Hadoop1.x中的不足,對其結(jié)構(gòu)進行了以下改進:
(1)Hadoop2.x可以同時啟動多個NameNode,其中一個處于工作(Active)狀態(tài),另一個處于隨時待命(Standby)狀態(tài),這種機制被稱為Hadoop HA(Hadoop高可用)。當一個NameNode所在的服務器宕機時,可以在數(shù)據(jù)不丟失的情況下,自動切換到另一個NameNode持續(xù)提供服務。
(2)Hadoop2.x將JobTracker中的資源管理和作業(yè)控制分開,分別由ResourceManager(負責所有應用程序的資源分配)和ApplicationMaster(負責管理一個應用程序)實現(xiàn),即引入了資源管理框架YARN,它是一個通用的資源管理框架,可以為各類應用程序進行資源管理和調(diào)度,不僅限于MapReduce一種框架,也可以為其他框架使用,如Tez、Spark、Storm,這種設計不僅能夠增強不同計算機模型和各種應用之間的交互,使集群資源得到高效利用,而且能更好地與企業(yè)中已經(jīng)存在的計算結(jié)構(gòu)集成在一起。
(3)Hadoop2.x中的MapReduce是運行在YARN上的離線處理框架,它的運行環(huán)境不再由JobTracker和TaskTracker等服務組成,而是變成通用資源管理YARN和作業(yè)控制進程ApplicationMaster,從而使MapReduce在速度上和可用性上都有很大的提高。