Spark的三種提交模式
1.standalone模式,基於Spark自己的Master-Worker模式
2.基於YARN的yarn-cluster模式
3.基於YARN的yarn-client模式
yarn-cluster模式講解
1.用spark-submit提交(yarn-cluster)
2.發送請求到Yarn集羣的ResourceManager,請求啓動ApplicationMaster(這裏的AM相當於是一個Driver)
3.ResourceManager接收到請求以後,會分配一個contaier,在某個nodemanager上啓動ApplicationMaster
4.ApplicationMaster啓動以後與ResourceManager通信,請求container,啓動executor
5.ResourceManager分配一批container,用於啓動executor
6.ApplicationMaster這時又會去找其他的NodeManager,去啓動executor,這裏的NM相當於Worker
7.executor啓動後,向AM反向註冊
yarn-client模式講解
1.用spark-submit提交(yarn-client)
2.發送請求給RM,請求啓動AM
3.RM分配一個container,在某個NM上啓動AM,但是這裏的AM,其實只是一個ExecutorLauncher
4.ExecutorLauncher與RM通信,申請container,啓動executor
5.RM分配一批container,然後AM連接其他NM,用container的資源,啓動executor
6.NodeManager上的executor啓動以後,會反向註冊到本地的Driver上,這也是和yarn-cluster的區別
yarn-cluster模式與yarn-client模式對比
1.yarn-client用於測試,因爲driver運行在本地客戶端,負責調度application,會與yarn集羣產生超大量的網絡通信,會導致網卡流量激增
2.yarn-cluster,用於生產環境,因爲dirver運行在nodemanager,沒有網卡流量激增的問題,缺點是調試不方便