Yarn相關(guān)知識點

Spark任務通過application id在Spark UI查看任務執(zhí)行狀態(tài),任務大多數(shù)以on yarn的形式提交到Spark集群。

1、定義:yarn是一種hadoop資源調(diào)度管理器,通用資源管理系統(tǒng)。為上層應用提供統(tǒng)一的資源調(diào)度和管理,在集群資源利用率、資源統(tǒng)一管理和數(shù)據(jù)共享上帶來了巨大好處。

2、基本設計思想:將Hadoop的JobTracker和TaskTracker分離,即資源管理和作業(yè)調(diào)度/監(jiān)控分為兩個組件,全局的ResourceManager與每個應用相關(guān)ApplicationMaster。

3、組成部分:1)一個全局的資源調(diào)度管理器ResourceManager? 2)ResourceManager的每個代理節(jié)點NodeManager 3)每個應用的ApplicationMaster 4)每個ApplicationMaster擁有多個Container在NodeManager上運行

4、執(zhí)行過程:1)用戶向Yarn提交應用程序,其中包括用戶程序,啟動ApplicationMaster命令等。2)ResourceManager為該應用分配第一個Container,并與對應的NodeManager通信,要求它啟動應用程序的ApplicationMaster。3)ApplicationMaster向ResourceManager注冊后,為各個任務申請資源,并監(jiān)控他們的狀態(tài),直到運行結(jié)束。4)ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請和領取資源。5)ApplicationMaster申請到資源后,便于對應的NodeManager通信,并要求它啟動任務。6)NodeManager為任務設置好運行環(huán)境(環(huán)境變量、jar包、二進制程序)后,將任務啟動命令寫到腳本中,通過運行腳本啟動任務。7)各個任務通過RPC協(xié)議向ApplicationMaster匯報自己的運行狀態(tài)和進度,在任務失敗時重新啟動任務。? 8)應用程序運行完成后,ApplicationMaster向ResourceManager注銷并關(guān)閉自己。

5 Yarn有三種調(diào)度器?

1)FIFO Scheduler,先進先出隊列,資源分配的時候,先給隊列中最頭上的應用分配資源。缺點:如果有一個應用占用了所有的集群資源,會導致其他應用阻塞。

2)Capacity Scheduler,會有一個專門的隊列用來運行小任務,但為小任務專門設置隊列就會預占一定的集群資源,會導致其執(zhí)行落后于FIFO Scheduler。

3)Fair Scheduler,會為所有的job動態(tài)調(diào)整系統(tǒng)資源。如果一個大job提交時,只有這一個job在運行,此時它獲得了所有集群資源。當?shù)诙€job提交時,F(xiàn)air調(diào)度器會分配一半資源給這個小任務,這兩個任務公平的共享集群資源,缺點,當?shù)诙€job提交時到獲取到資源有一定延遲,它需要等待第一個任務釋放占用的Container,小任務執(zhí)行完成后也會釋放自己占用的資源。最終效果就是Fair調(diào)度器得到了高的資源利用率的同時又能保證小任務及時完成。

搶占:當一個job提交的一個繁忙的集群的隊列時,job并不會馬上執(zhí)行,而是阻塞到正在運行的job使用系統(tǒng)資源,為了時提交job的時間更有預測性(可以設置等待超時時間),Fair調(diào)度器支持搶占。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容