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


  • yarn-client提交任務方式

  1. 客戶端提交一個Application,在客戶端啟動一個Driver進程

  2. Driver進程會向RS(ResourceManager)發送請求,啟動AM(ApplicationMaster)的資源

  3. RS收到請求,隨機選擇一台NM(NodeManager)啟動AM。這里的NM相當於Standalone中的Worker節點

  4. AM啟動后,會向RS請求一批container資源,用於啟動Executor

  5. RS會找到一批NM返回給AM,用於啟動Executor

  6. AM會向NM發送命令啟動Executor

  7. Executor啟動后,會反向注冊給Driver,Driver發送task到Executor,執行情況和結果返回給Driver端

  

 

Yarn-client模式同樣是適用於測試,因為Driver運行在本地,Driver會與yarn集群中的Executor進行大量的通信,會造成客戶機網卡流量的大量增加

  • yarn-cluster提交任務方式

  1. 客戶機提交Application應用程序

  2. 發送請求到RS(ResourceManager),請求啟動AM(ApplicationMaster)

  3. RS收到請求后隨機在一台NM(NodeManager)上啟動AM(相當於Driver端)

  4. AM啟動,AM發送請求到RS,請求一批container用於啟動Executor

  5. RS返回一批NM節點給AM

  6. AM連接到NM,發送請求到NM啟動Executor

  7. Executor反向注冊到AM所在的節點的Driver。Driver發送task到Executor,監控task執行,回收結果

  

 

Yarn-Cluster主要用於生產環境中,因為Driver運行在Yarn集群中某一台nodeManager中,每次提交任務的Driver所在的機器都是隨機的,不會產生某一台機器網卡流量激增的現象,缺點是任務提交后不能看到日志。只能通過yarn查看日志


免責聲明!

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



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