Spark中yarn-client與yarn-cluster的區(qū)別是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
網站建設哪家好,找創(chuàng)新互聯(lián)!專注于網頁設計、網站建設、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了羅山免費建站歡迎大家使用!
摘要:
??spark有兩種方式運行在yarn上,一種是yarn-client客戶端模式,一種是yarn-cluster模式。兩種模式有一定的不同點。
一、Application Master
??為了更好的理解這兩種模式的區(qū)別先了解下Yarn的Application Master概念。在Yarn中,每個application都有一個Application Master進程,它是Appliaction啟動的第一個容器,它負責從ResourceManager中申請資源,分配資源,同時通知NodeManager來為Application啟動container,Application Master避免了需要一個活動的client來維持,啟動Applicatin的client可以隨時退出,而由Yarn管理的進程繼續(xù)在集群中運行。
二、yarn-client模式
??在yarn-client端中,spark的driver是在提交代碼的客戶端client上面,這個機器可以不是yarn集群中的機器。Application Master僅僅從yarn中為spark executor 申請資源,之后client端會一直與yarn container保持通信,進行作業(yè)的調度。
yarn-client模式下作業(yè)執(zhí)行流程:
1、客戶端生成作業(yè)信息提交給Resource Manager(RM)。
2、RM在本地NodeManager啟動container,并將Application Master(AM)分配給該NodeManager(NM)。
3、NodeManager接收到Resource Manager(RM)的分配信息,啟動Application Master(AM)并初始化作業(yè)。
4、ApplicationMaster向RM申請資源,分配資源并通知其它的NodeManager啟動Executor。
5、Executor向ApplicationMaster注冊并匯報作業(yè)進度,啟動task任務。
三、yarn-cluster模式
??在yarn-cluster模式中,driver是運行在Application Master上的。Appliaction Master進程同時負責驅動Application和從Yarn中申請資源,該進程運行在Yarn container內,所以啟動Application Master的client可以立即關閉而不必持續(xù)到Application的生命周期。這個client節(jié)點是在Yarn集群內的節(jié)點。
yarn-cluster模式下作業(yè)執(zhí)行流程:
1、客戶端生成作業(yè)信息提交給ResourceManager(RM)。
2、RM在某一個NodeManager(NM)啟動container,并將Application Master(AM)分配給該NM。
3、NM接收到RM的分配并啟動Application Master,這時這個NM就是Driver。
4、Application向RM申請資源,分配資源并通知其他NM啟動相應的Executor。
5、Executor向AM注冊并匯報作業(yè)進度,啟動task任務。
四、yarn-client與yarn-cluster的差別
1、yarn-client模式中,Driver是存在client節(jié)點,而yarn-cluster是存在NM節(jié)點。
2、yarn-client模式中,client提交了作業(yè),由于driver端存在client,要與各個container交互,所以是不能關閉這個提交進程的。而yarn-cluster中,driver存在于NM,提交了代碼后,與這個提交進程就沒有關系了,可以關閉。
3、yarn-client模式中,是可以通過控制臺日志看到作業(yè)運行的狀況的,而yarn-cluster在控制臺是看不到的。如果需要查看日志,可以通過命令查看。
yarn logs -applicationId
1
4、yarn-client模式中,client有可能不在集群內,該機器會與yarn集群進行頻繁的網絡通信(driver與executor通信),有可能會有網絡限制。如果client在集群內,則會在集群內走網絡通信。而yarn-cluster模式只是在集群內走網絡通信。
5、在使用的時候,yarn-client傳入的參數為
--master yarn --deploy-mode client
1
其實就等同于
--master yarn
1
默認yarn提交方式為yarn-client。而yarn-cluster模式需要寫全
--master yarn --deploy-mode cluster
看完上述內容,你們掌握Spark中yarn-client與yarn-cluster的區(qū)別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!