1,hadoop 1.0中hdfs和mapreduce在高可用、擴充套件性等方面存在問題
2,hdfs存在的問題
namenode壓力過大,且記憶體受限,影響系統擴充套件
3,mapreduce存在的問題
jobtracker單點故障
jobtracker訪問壓力大,影響系統擴充套件性
難以支援除mapreduce之外的計算框架,比如spark、storm等
1,hadoop 1.x到hadoop 2.x架構的改變
2,hadoop 2.x由hdfs、mapreduce和yarn三個分支構成
hdfs:nn federation、ha
mapreduce:執行在yarn上的mr
yarn:資源管理系統
1,解決hdfs 1.0中單點故障和記憶體受限問題。
2,解決單點故障
hdfs ha:通過主備namenode解決
如果主namenode發生故障,則切換到備namenode上
3,解決記憶體受限問題
hdfs federation(聯邦)
水平擴充套件,支援多個namenode
每個namenode分管一部分目錄
所有namenode共享所有datanode儲存資
4,2.x僅是架構上發生了變化,使用方式不變,對hdfs使用者透明,hdfs 1.x中的命令和api仍可以使用
1,架構圖如下
2,描述
2.1,主備namenode
2.2,解決單點故障
主namenode對外提供服務,備namenode同步主namenode元資料,以待切換
所有datanode同時向兩個namenode匯報資料塊資訊
2.3,兩種切換選擇
手動切換:通過命令實現主備之間的切換,可以用hdfs公升級等場合
自動切換:基於zookeeper實現
2.4,基於zookeeper自動切換方案
zookeeper failover controller:監控namenode健康狀態,並向zookeeper註冊namenode
namenode掛掉後,zkfc為namenode競爭鎖,獲得zkfc鎖的namenode變為active
3,federation
3.1,描述
通過多個namenode/namespace把元資料的儲存和管理分散到多個節點中,使到namenode/namespace可以通過增加機器來進行水平擴充套件
能把單個namenode的負載分散到多個節點中,在hdfs資料規模較大的時候不會也降低hdfs的效能。可以通過多個namespace來隔離不同型別的應用,把不同型別應用的hdfs元資料的儲存和管理分派到不同的namenode中
3.2,架構圖
2,hadoop 2.x新引入的資源管理系統,直接從mrv1演化而來的
2.2,resourcemanager:負責整個集群的資源管理和排程
3.2,目前多個計算框架可以執行在yarn上,比如mapreduce、spark、storm等
1,mapreduce on yarn:mrv2,將mapreduce作業直接執行在yarn上,而不是由jobtracker和tasktracker構建的mrv1系統中
2,基本功能模組
2.1,yarn:負責資源管理和排程
4.1,失敗後,由yarn重新啟動
hadoop2 x入門 Hadoop的啟動方式
本內容基於hadoop 2.7.2 1.hadoop啟動方式 我們執行hadoop安裝目錄下的sbin sh 各服務元件逐一啟動 hdfs hadoop daemon.sh start stop namenode datanode secondarynamenode yarn yarn daemon...
hadoop2 x入門 Hadoop的啟動方式
hadoop2.x入門 hadoop的啟動方式,本內容基於hadoop 2.7.2。1.hadoop啟動方式 我們執行hadoop安裝目錄下的sbin sh 各服務元件逐一啟動 hdfs hadoop daemon.sh start stop namenode datanode secondaryn...
hadoop1 x和hadoop2 x的對比
1.能否總結出mapreduce設計思路?2.hadoop1遇到了什麼問題?3.hadoop2做了什麼改進,具體哪些變化?對 hadoop1 和 hadoop 2 做了乙個解釋 不錯 拿來看看 從上圖中可以清楚的看出原 mapreduce 程式的流程及設計思路 可以看得出原來的 map reduce...