Spark基於Standalone提交任務兩種方式


  • Standalone-client模式:

1、client模式提交任務后,會在客戶端啟動Driver進程
2、Driver會向Master申請啟動Application啟動的資源
3、資源申請成功,Driver端將task發送到worker端執行
4、worker將task執行結果返回到Driver端

client模式適用於測試調試程序。Driver進程是在客戶端啟動的,這里的客戶端就是指提交應用程序的當前節點。Driver端可以看到task執行的情況。生產環境下不能使用client模式,是因為:假設要提交100application到集群運行,Driver每次都會在client端啟動,那么就會導致客戶端100次網卡流量暴增的問題。

  • Standalone-master模式:

1、cluster模式提交應用程序后,會向Master請求啟動Driver.(而不是啟動application)
2、Master接受請求,隨機在集群一台節點啟動Driver進程
3、Driver啟動后為當前的應用程序申請資源。Master返回資源,並在對應的worker節點上發送消息啟動Worker中的executor進程
4、Driver端發送task到worker節點上執行
5、worker將執行情況和執行結果返回給Driver端。Driver監控task任務,並回收結果

 

Driver進程是在集群某一台Worker上啟動的,在客戶端是無法查看task的執行情況的。假設要提交100application到集群運行,每次Driver會隨機在集群中某一台Worker上啟動,那么這100次網卡流量暴增的問題就散布在集群上。

總結Standalone兩種方式提交任務,Driver與集群的通信包括:

1. Driver負責應用程序資源的申請

2. 任務的分發。

3. 結果的回收。

4. 監控task執行情況。

 

 
        


免責聲明!

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



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