您好,登錄后才能下訂單哦!
Spark中yarn-client與yarn-cluster的區(qū)別是什么,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問題。
摘要:
??spark有兩種方式運(yùn)行在yarn上,一種是yarn-client客戶端模式,一種是yarn-cluster模式。兩種模式有一定的不同點(diǎn)。
一、Application Master
??為了更好的理解這兩種模式的區(qū)別先了解下Yarn的Application Master概念。在Yarn中,每個(gè)application都有一個(gè)Application Master進(jìn)程,它是Appliaction啟動(dòng)的第一個(gè)容器,它負(fù)責(zé)從ResourceManager中申請(qǐng)資源,分配資源,同時(shí)通知NodeManager來(lái)為Application啟動(dòng)container,Application Master避免了需要一個(gè)活動(dòng)的client來(lái)維持,啟動(dòng)Applicatin的client可以隨時(shí)退出,而由Yarn管理的進(jìn)程繼續(xù)在集群中運(yùn)行。
二、yarn-client模式
??在yarn-client端中,spark的driver是在提交代碼的客戶端client上面,這個(gè)機(jī)器可以不是yarn集群中的機(jī)器。Application Master僅僅從yarn中為spark executor 申請(qǐng)資源,之后client端會(huì)一直與yarn container保持通信,進(jìn)行作業(yè)的調(diào)度。
yarn-client模式下作業(yè)執(zhí)行流程:
1、客戶端生成作業(yè)信息提交給Resource Manager(RM)。
2、RM在本地NodeManager啟動(dòng)container,并將Application Master(AM)分配給該NodeManager(NM)。
3、NodeManager接收到Resource Manager(RM)的分配信息,啟動(dòng)Application Master(AM)并初始化作業(yè)。
4、ApplicationMaster向RM申請(qǐng)資源,分配資源并通知其它的NodeManager啟動(dòng)Executor。
5、Executor向ApplicationMaster注冊(cè)并匯報(bào)作業(yè)進(jìn)度,啟動(dòng)task任務(wù)。
三、yarn-cluster模式
??在yarn-cluster模式中,driver是運(yùn)行在Application Master上的。Appliaction Master進(jìn)程同時(shí)負(fù)責(zé)驅(qū)動(dòng)Application和從Yarn中申請(qǐng)資源,該進(jìn)程運(yùn)行在Yarn container內(nèi),所以啟動(dòng)Application Master的client可以立即關(guān)閉而不必持續(xù)到Application的生命周期。這個(gè)client節(jié)點(diǎn)是在Yarn集群內(nèi)的節(jié)點(diǎn)。
yarn-cluster模式下作業(yè)執(zhí)行流程:
1、客戶端生成作業(yè)信息提交給ResourceManager(RM)。
2、RM在某一個(gè)NodeManager(NM)啟動(dòng)container,并將Application Master(AM)分配給該NM。
3、NM接收到RM的分配并啟動(dòng)Application Master,這時(shí)這個(gè)NM就是Driver。
4、Application向RM申請(qǐng)資源,分配資源并通知其他NM啟動(dòng)相應(yīng)的Executor。
5、Executor向AM注冊(cè)并匯報(bào)作業(yè)進(jìn)度,啟動(dòng)task任務(wù)。
四、yarn-client與yarn-cluster的差別
1、yarn-client模式中,Driver是存在client節(jié)點(diǎn),而yarn-cluster是存在NM節(jié)點(diǎn)。
2、yarn-client模式中,client提交了作業(yè),由于driver端存在client,要與各個(gè)container交互,所以是不能關(guān)閉這個(gè)提交進(jìn)程的。而yarn-cluster中,driver存在于NM,提交了代碼后,與這個(gè)提交進(jìn)程就沒有關(guān)系了,可以關(guān)閉。
3、yarn-client模式中,是可以通過(guò)控制臺(tái)日志看到作業(yè)運(yùn)行的狀況的,而yarn-cluster在控制臺(tái)是看不到的。如果需要查看日志,可以通過(guò)命令查看。
yarn logs -applicationId <app ID>
1
4、yarn-client模式中,client有可能不在集群內(nèi),該機(jī)器會(huì)與yarn集群進(jìn)行頻繁的網(wǎng)絡(luò)通信(driver與executor通信),有可能會(huì)有網(wǎng)絡(luò)限制。如果client在集群內(nèi),則會(huì)在集群內(nèi)走網(wǎng)絡(luò)通信。而yarn-cluster模式只是在集群內(nèi)走網(wǎng)絡(luò)通信。
5、在使用的時(shí)候,yarn-client傳入的參數(shù)為
--master yarn --deploy-mode client
1
其實(shí)就等同于
--master yarn
1
默認(rèn)yarn提交方式為yarn-client。而yarn-cluster模式需要寫全
--master yarn --deploy-mode cluster
看完上述內(nèi)容,你們掌握Spark中yarn-client與yarn-cluster的區(qū)別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。