6、yarn運行模式

簡介

spark的yarn運行模式根據Driver在集羣中的位置分紅兩種:大數據

1)yarn-client 客戶端模式spa

2)yarn-cluster 集羣模式調試

yarn模式和standalone模式不一樣,standalone模式須要啓動spark獨立集羣,這樣SparkContext才能與Master進行交互通訊。而yarn模式的資源管理所有託管給的ResourceManager了,因此它不須要啓動spark獨立集羣,那麼也就意味着你沒法訪問http://master:8080這個頁面了。blog

yarn集羣模式

spark的yarn集羣模式,Driver運行在Application Master上,Application Master進程同時負責驅動咱們的代碼程序從ResourceManager申請資源。因爲它直接運行在yarn的Container當中,因此並不須要客戶端,客戶端能夠在提交完畢以後就關閉,如圖:進程

1)客戶端將生成做業信息並提交給ResourceManager資源

2)ResourceManager會選擇一個NodeManager去啓動container,而且把ApplicationMaster分配給它去運行spark

3)NodeManager接收到之後就會啓動ApplicationMaster並初始化dag做業,此時NodeManager就成爲Driverio

4)ApplicationMaster向ResourceManager申請資源ast

5)ResourceManager分配資源的同時通知其它NodeManager啓動相應的executor去執行task,並反饋執行狀況集羣

6)執行完畢,釋放資源

yarn客戶端模式

yarn客戶端模式和yarn集羣模式的區別很明顯,就是在於ApplicationMaster僅僅負責從ResourceManager申請資源,而驅動代碼程序的任務仍是由Client客戶端負責,因此Client客戶端在整個過程當中保持運行不會像集羣模式同樣提交完就關閉,如圖:

1)客戶端生成做業信息並提交給ResourceManager

2)ResourceManager在本地NodeManager啓動container並分配運行ApplicationMaster

3)Client節點會初始化dag做業,經過ApplicationMaster去向ResourceManager申請資源

4)Client節點將任務分發給executor去執行,executor反饋執行狀況

5)任務執行完畢,釋放資源

yarn-client和yarn-cluster的區別

1)在yarn-cluster模式中,Driver運行在ApplicationMaster上,而在yarn-client模式中Driver運行在Client

2)yarn-cluster模式中,Client提交完能夠直接關閉,yarn-client模式中保持運行並和executor通訊

3)yarn-cluster模式中,ApplicationMaster負責資源申請驅動程序運行,yarn-client模式中只負責資源申請,運行程序由Client負責

4)yarn-cluster適合生產環境,而yarn-client適合交互和調試

 

參考書籍:《spark大數據技術與應用》

相關文章
相關標籤/搜索