Hadoop历代版本及其特点
前言:Hadoop1.0、Hadoop2.0核心組件及其區別
Hadoop1.0
核心組件
- HDFS 1.0:單個NameNode、單個Secondary NameNode、多個DataNode
- MapReduce 1.0
Hadoop1.0的問題
單點故障
只有一個NameNode,所有元數據由唯一的NameNode負責管理。如果該NameNode失效,則任何與集群有關的歷史操作都將失效,整個集群也就處于基本不可用狀態。
水平擴展性差
元數據存儲在NameNode的內存中,因此集群規模受限于單個NameNode的內存大小
MapReduce1.0擴展性差、低可靠性、資源利用率低、無法執行非MapReduce任務無法支持多種計算框架
在MRv1中,JobTracker同時兼備了集群資源的管理和作業的調度與控制兩大功能,使得JobTracker負載過重,增加了JobTracker失效的風險,造成Hadoop集群的擴展性差和低可靠性
MRv1采用了基于槽位(slot)的資源分配模型,需要為map任務和reduce任務預先配置tasktracker槽位,當一個任務用不完槽位對應的所有資源其他任務也無法使用,而且為map任務保留的slot無法用于reduce任務,這造成資源利用率低
MRv1中資源管理器JobTracker、TaskTracker耦合高,導致MRv1無法執行非MapReduce任務
Hadoop2.0
核心組件
-
HDFS2.0:雙NameNode(Active NameNode、Standby NameNode)、DataNode
HDFS2.0中存在兩個NameNode,為區分兩者,將主NameNode稱為Active NameNode,將備用NameNode稱為Standy NameNode。兩者通過Journal Node實現元數據同步。 -
YARN(MapReduce2.0)
Hadoop1.0與Hadoop2.0對比
HDFS角度
Hadoop2.0增加了HDFS HA(高可用)機制,解決了HDFS 1.0中的單點故障問題,通過HA進行Standby NameNode的熱備份。
Hadoop2.0增加了HDFS Federation(聯邦)水平擴展,支持多個NameNode同時運行,每一個NameNode分管一批目錄,然后共享所有DataNode的存儲資源,從而解決1.0當中單個NameNode節點內存受限問題。
MapReduce角度
在Hadoop2.0當中增加了YARN框架,針對hadoop1.0中主JobTracker壓力太大的不足,把JobTracker資源分配和作業控制分開,利用Resource Manager在NameNode上進行資源管理調度,利用ApplicationMaster進行任務管理和任務監控。由NodeManager替代TaskTracker進行具體任務的執行,因此MapReduce2.0只是一個計算框架。對比hadoop1.0中相關資源的調用全部給Yarn框架管理。
Hadoop3.0
Hadoop2.0之后版本就相對穩定,大部分實際生產環境中都使用的是2.0,Hadoop3.0主要增加了一些性能上的優化和支持:
的java不再支持
2. HDFS3.0支持數據的擦除編碼,調高存儲空間的使用率
3. 一些默認端口的改變
4. 增加一些MapReduce的調優
總結
以上是生活随笔為你收集整理的Hadoop历代版本及其特点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop2.0 YARN
- 下一篇: 数据分析软件-weka