1. 程式人生 > >Spark面試:Spark on yarn 執行流程

Spark面試:Spark on yarn 執行流程

一:
Spark on YARN能讓Spark計算模型在雲梯YARN叢集上執行,直接讀取雲梯上的資料,並充分享受雲梯YARN叢集豐富的計算資源。
二:
基於YARN的Spark作業首先由客戶端生成作業資訊,提交給ResourceManager,
ResourceManager在某一 NodeManager彙報時把AppMaster分配給NodeManager,
NodeManager啟動 SparkAppMaster,SparkAppMaster啟動後初始化作業,
向ResourceManager申請資源,申請到相應資源後 SparkAppMaster通過RPC讓NodeManager啟動相應的SparkExecutor,
SparkExecutor向 SparkAppMaster彙報並完成相應的任務
SparkClient會通過AppMaster獲取作業執行狀態。
三:
driver 執行在叢集中(cluster模式)
1、client 向 yarn 提交一個job
2、ResouceManager 為該job在某個 NodeManager 上分配一個 ApplicationMaster,NM啟動AppMaster,Appmaster 啟動 driver
3、ApplicationMaster 啟動後完成初始化作業,driver 生成一系列task
4、AM 向 RM 申請資源,RM 返回 Executo r資訊
5、AM 通過 rpc 啟動相應的 sparkExecutor
6、Driver 向 Executor 分配 task
7、Executor 執行結果寫入檔案或返回 driver 端

在這裡插入圖片描述

四:
driver執行在client端
1、客戶端啟動後直接執行應用程式,直接啟動 driver
2、driver 初始化並生成一系列 task
3、客戶端將 job 釋出到 yarn 上
4、RM 為該job 在某個 NM 分配一個 AM
5、AM 向 RM 申請資源,RM 返回Executor 資訊
6、AM 通過 RPC 啟動相應的 SparkExecutor
7、Driver 向 Executor 分配 task
8、Executor 執行task 並將結果寫入第三方儲存系統或者 Driver 端

在這裡插入圖片描述

五:對比總圖

在這裡插入圖片描述