YARN应用场景、原理与资源调度
1.Hadoop YARN產(chǎn)生背景
源于MapReduce1.0
運維成本 如果采用“一個框架一個集群”的模式,則可能需要多個管理員管理這些集群,進而增加運維成本,而共享模式通常需要少數(shù)管理員即可完成多個框架的統(tǒng)一管理。
數(shù)據(jù)共享 隨著數(shù)據(jù)量的暴增,跨集群間的數(shù)據(jù)移動不僅需花費更長的時間,且硬件成本也會大大增加,而共享集群模式可讓多種框架共享數(shù)據(jù)和硬件資源,將大大減小數(shù)據(jù)移動帶來的成本。
直接源于MRv1在幾個方面的缺陷:
?擴展性受限
?單點故障
?難以支持MR之外的計算
多計算框架各自為戰(zhàn),數(shù)據(jù)共享困難
?MR:離線計算框架
???Storm:實時計算框架
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Spark:內(nèi)存計算框架
2.Hadoop YARN基本構(gòu)成
ResourceManager
整個集群只有一個,負責(zé)集群資源的統(tǒng)一管理和調(diào)度
詳細功能
?處理客戶端請求
?啟動/監(jiān)控ApplicationMaster
?監(jiān)控NodeManager
?資源分配與調(diào)度
NodeManager
整個集群有多個,負責(zé)單節(jié)點資源管理和使用
詳細功能
?單個節(jié)點上的資源管理和任務(wù)管理
?處理來自ResourceManager的命令
?處理來自ApplicationMaster的命令
ApplicationMaster
每個應(yīng)用有一個,負責(zé)應(yīng)用程序的管理
詳細功能
?數(shù)據(jù)切分
?為應(yīng)用程序申請資源,并進一步分配給內(nèi)部任務(wù)
?任務(wù)監(jiān)控與容錯
Container
?對任務(wù)運行環(huán)境的抽象
?描述一系列信息
?任務(wù)運行資源(節(jié)點、內(nèi)存、CPU)
?任務(wù)啟動命令
?任務(wù)運行環(huán)境
3.YARN容錯性
ResourceManager
?存在單點故障;
?正在基于ZooKeeper實現(xiàn)HA。
NodeManager
?失敗后,RM將失敗任務(wù)告訴對應(yīng)的AM;
?AM決定如何處理失敗的任務(wù)。
ApplicationMaster
?失敗后,由RM負責(zé)重啟;
?AM需處理內(nèi)部任務(wù)的容錯問題;
?RMAppMaster會保存已經(jīng)運行完成的Task,重啟后無需重新運行
4.YARN調(diào)度框架
雙層調(diào)度框架
?RM將資源分配給AM
?AM將資源進一步分配給各個Task
基于資源預(yù)留的調(diào)度策略
?資源不夠時,會為Task預(yù)留,直到資源充足
?與“all or nothing”策略不同(Apache Mesos)
5.Hadoop YARN資源調(diào)度?
YARN資源調(diào)度器
多類型資源調(diào)度
?采用DRF算法(論文:“Dominant Resource Fairness: Fair Allocation of Multiple Resource Types”)
?目前支持CPU和內(nèi)存兩種資源
提供多種資源調(diào)度器
?FIFO
?Fair Scheduler
?Capacity Scheduler
多租戶資源調(diào)度器
?支持資源按比例分配
?支持層級隊列劃分方式
?支持資源搶占
YARN資源隔離方案
?支持內(nèi)存和CPU兩種資源隔離
?內(nèi)存是一種“決定生死”的資源
?CPU是一種“影響快慢”的資源
?內(nèi)存隔離
?基于線程監(jiān)控的方案
?基于Cgroups的方案
?CPU隔離
?默認不對CPU資源進行隔離
?基于Cgroups的方案
YARN支持的調(diào)度語義
?支持的語義
?請求某個特定節(jié)點/機架上的特定資源量
?將某些節(jié)點加入(或移除)黑名單,不再為自己分配這些節(jié)點上的資源
?請求歸還某些資源
?不支持的語義
?請求任意節(jié)點/機架上的特定資源量
?請求一組或幾組符合某種特質(zhì)的資源
?超細粒度資源
?動態(tài)調(diào)整Container資源
6.Hadoop YARN上的計算框架
?離線計算框架:MapReduce
?DAG計算框架:Tez
?流式計算框架:Storm
?內(nèi)存計算框架:Spark
轉(zhuǎn)載于:https://www.cnblogs.com/tmeily/p/4427711.html
總結(jié)
以上是生活随笔為你收集整理的YARN应用场景、原理与资源调度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vim global命令
- 下一篇: Win8节省C盘空间攻略