1. 程式人生 > >YARN-Cluster和YARN-Client的區別

YARN-Cluster和YARN-Client的區別

理解YARN-Client和YARN-Cluster深層次的區別之前先清楚一個概念:Application Master。在YARN中,每個Application例項都有一個ApplicationMaster程序,它是Application啟動的第一個容器。它負責和ResourceManager打交道並請求資源,獲取資源之後告訴NodeManager為其啟動Container。從深層次的含義講YARN-Cluster和YARN-Client模式的區別其實就是ApplicationMaster程序的區別
YARN-Cluster模式下,Driver執行在AM(Application Master)中,它負責向YARN申請資源,並監督作業的執行狀況。當用戶提交了作業之後,就可以關掉Client,作業會繼續在YARN上執行,因而YARN-Cluster模式不適合執行互動型別的作業
YARN-Client模式下,Application Master僅僅向YARN請求Executor,Client會和請求的Container通訊來排程他們工作,也就是說Client不能離開

(1)YarnCluster的Driver是在叢集的某一臺NM上,但是Yarn-Client就是在RM的機器上;
(2)而Driver會和Executors進行通訊,所以Yarn_cluster在提交App之後可以關閉Client,而Yarn-Client不可以;
(3)Yarn-Cluster適合生產環境,Yarn-Client適合互動和除錯。

下表是Spark Standalone與Spark On Yarn模式下的比較
在這裡插入圖片描述