六、yarn運行模式


簡介

spark的yarn運行模式根據Driver在集群中的位置分成兩種:

1)yarn-client 客戶端模式

2)yarn-cluster 集群模式

yarn模式和standalone模式不同,standalone模式需要啟動spark獨立集群,這樣SparkContext才能與Master進行交互通信。而yarn模式的資源管理全部托管給的ResourceManager了,所以它不需要啟動spark獨立集群,那么也就意味着你無法訪問http://master:8080這個頁面了。

yarn集群模式

spark的yarn集群模式,Driver運行在Application Master上,Application Master進程同時負責驅動我們的代碼程序從ResourceManager申請資源。由於它直接運行在yarn的Container當中,所以並不需要客戶端,客戶端可以在提交完畢之后就關閉,如圖:

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

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

3)NodeManager接收到以后就會啟動ApplicationMaster並初始化dag作業,此時NodeManager就成為Driver

4)ApplicationMaster向ResourceManager申請資源

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大數據技術與應用》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM