前段時間記錄了技術部落格Yarn快速入門系列(1-5),詳情請見Yarn專欄。最近打算花點時間把Yarn也精煉一番,整理出來,以便于後期的快速複習。

1、什麼是Yarn
2、Yarn特點
3、Yarn的意義
4、Yarn基本組成
5、Yarn送出任務的流程
6、Yarn的排程方式
7、參數yarn.scheduler.fair.allow-undeclared-pools的作用是?(true/false)
8、參數yarn.scheduler.fair.user-as-default-queue的作用是?(true/false)
9、介紹一下hadoopHA
10、ZKFC作用:
11、NameNode 中 Active狀态和StandBy狀态的确認:
12、ActiveNameNode當機之後故障如何轉移
13、兩個NameNode之間的中繼資料資訊如何實作快速同步?
Yarn是通用資源管理系統和排程平台
1、支援多計算架構
2、資源使用率高,運作成本低,資料共享
降低了企業硬體的成本(多個叢集變成一個叢集),減少了資源的浪費,營運成本低。
ResourceManager:一個叢集資源排程的管理者
NodeManager:一個節點資源排程的管理者(叢集各個節點資源的工作者)
ApplicationMaster:一個計算任務的管理者
Container:容器(cpu和記憶體)
1、client向RM送出應用程式,其中包括啟動該應用的ApplicationMaster的必須資訊,例如ApplicationMaster程式、啟動ApplicationMaster的指令、使用者程式等。
2、ResourceManager啟動一個container用于運作ApplicationMaster
3、啟動中的ApplicationMaster向ResourceManager注冊自己,啟動成功後與RM保持心跳。
4、ApplicationMaster向ResourceManager發送請求,申請相應數目的container。
5、申請成功的container,由ApplicationMaster進行初始化。container的啟動資訊初始化後,AM與對應的NodeManager通信,要求NM啟動container。
6、NM啟動啟動container。
7、container運作期間,ApplicationMaster對container進行監控。container通過RPC協定向對應的AM彙報自己的進度和狀态等資訊。
8、應用運作結束後,ApplicationMaster向ResourceManager登出自己,并允許屬于它的container被收回。
FIFO Scheduler : 先進先出(先來後到的順序)
Capacity Scheduler:容量排程
Fair Scheduler:公平排程
1、先進先出:優先送出的,優先執行,後面送出的等待。(火車過隧道)。
2、容量排程:允許建立多個任務對列,每個隊列使用所有資源的一部分。多個任務對列可以同時執行。但是一個隊列内部還是先進先出。CDH預設的排程器。
3、公平排程:第一個程式在啟動時可以占用其他對列的資源(100%占用),當其他對列有任務送出時,占用資源的對列需要将資源還給該任務。還資源的時候,效率比較慢。
如果送出一個任務沒有到任何的隊列,是否允許建立一個新的隊列,預設為true
是否送出到預設隊列 ,以使用者名為預設隊列
1、HadoopHA 包括兩個部分,NameNodeHA和ResourceManagerHA
2、hadoop HA解決了早期版本中的NameNode單點問題。YarnHA解決了ResourceManager的單點問題
3、NameNodeHA方案中包含兩個NameNode,一個是Active狀态,一個是StandBy狀态。每個NameNode配置設定在兩個完全獨立的伺服器中。每個Namenode所在的節點需配置一個ZKFC。
4、兩個Namenode之間的中繼資料同步使用JN(JournalNode )傳遞。
監控NameNode所在節點的硬體裝置,軟體,作業系統,同時維護與ZK的通信。主要用于兩個NameNode之間狀态切換時的資訊傳遞。
兩個NameNode到ZooKeeper叢集注冊一個臨時的ZNode,哪個先注冊成功,哪個就是Active,另外一個就是StandBy。
當ActiveNN節點故障 ——>
ActiveZKFC通知ZK删除臨時ZNode ——>
StandBy狀态的ZKFC訂閱這個臨時ZNode的變換,若ZNode消失,StandBy狀态的ZKCF立刻通知StandBy NN ——>
StandBy NN 遠端登入ActiveNN,執行Kill -9 ActiveNN ——>
StandBy NN通知StandBy ZKFC去ZK上注冊臨時ZNode,注冊成功切換為active狀态。
ActiveNameNode實時将FSimage和日志接入JournalNode(高效的存儲系統)。StandByNameNode實時擷取JournalNode内部的資料,實作兩個節點的實時中繼資料同步。
本篇的知識分享就到這裡,受益或對大資料技術感興趣的朋友可以關注一下我喲~