成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

sparkonyarn的兩種提交方式分別是什么

這篇文章給大家介紹spark on yarn的兩種提交方式分別是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

為冀州等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及冀州網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、冀州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

和yarn-cluster模式一樣,整個(gè)程序也是通過(guò)spark-submit腳本提交的。但是yarn-client作業(yè)程序的運(yùn)行不需要通過(guò)Client類(lèi)來(lái)封裝啟動(dòng),而是直接通過(guò)反射機(jī)制調(diào)用作業(yè)的main函數(shù)。下面就來(lái)分析:
1、通過(guò)SparkSubmit類(lèi)的launch的函數(shù)直接調(diào)用作業(yè)的main函數(shù)(通過(guò)反射機(jī)制實(shí)現(xiàn)),如果是集群模式就會(huì)調(diào)用Client的main函數(shù)。
2、而應(yīng)用程序的main函數(shù)一定都有個(gè)SparkContent,并對(duì)其進(jìn)行初始化;
3、在SparkContent初始化中將會(huì)依次做如下的事情:設(shè)置相關(guān)的配置、注冊(cè)MapOutputTracker、 BlockManagerMaster、BlockManager,創(chuàng)建taskScheduler和dagScheduler;其中比較重要的是創(chuàng)建 taskScheduler和dagScheduler。在創(chuàng)建taskScheduler的時(shí)候會(huì)根據(jù)我們傳進(jìn)來(lái)的master來(lái)選擇 Scheduler和SchedulerBackend。由于我們選擇的是yarn-client模式,程序會(huì)選擇YarnClientClusterScheduler和YarnClientSchedulerBackend,并將YarnClientSchedulerBackend 的實(shí)例初始化YarnClientClusterScheduler,上面兩個(gè)實(shí)例的獲取都是通過(guò)反射機(jī)制實(shí)現(xiàn) 的,YarnClientSchedulerBackend類(lèi)是CoarseGrainedSchedulerBackend類(lèi)的子 類(lèi),YarnClientClusterScheduler是TaskSchedulerImpl的子類(lèi),僅僅重寫(xiě)了TaskSchedulerImpl 中的getRackForHost方法。
4、初始化完taskScheduler后,將創(chuàng)建dagScheduler,然后通過(guò)taskScheduler.start()啟動(dòng) taskScheduler,而在taskScheduler啟動(dòng)的過(guò)程中也會(huì)調(diào)用SchedulerBackend的start方法。在 SchedulerBackend啟動(dòng)的過(guò)程中將會(huì)初始化一些參數(shù),封裝在ClientArguments中,并將封裝好的 ClientArguments傳進(jìn)Client類(lèi)中,并client.runApp()方法獲取Application ID。
5、client.runApp里面的做是和前面客戶端進(jìn)行操作那節(jié)類(lèi)似,不同的是在里面啟動(dòng)是ExecutorLauncher(yarn-cluster模式啟動(dòng)的是ApplicationMaster)。
6、在ExecutorLauncher里面會(huì)初始化并啟動(dòng)amClient,然后向ApplicationMaster注冊(cè)該 Application。注冊(cè)完之后將會(huì)等待driver的啟動(dòng),當(dāng)driver啟動(dòng)完之后,會(huì)創(chuàng)建一個(gè)MonitorActor對(duì)象用于和 CoarseGrainedSchedulerBackend進(jìn)行通信(只有事件AddWebUIFilter他們之間才通信,Task的運(yùn)行狀況不是通 過(guò)它和CoarseGrainedSchedulerBackend通信的)。然后就是設(shè)置addAmIpFilter,當(dāng)作業(yè)完成的時(shí) 候,ExecutorLauncher將通過(guò)amClient設(shè)置Application的狀態(tài)為 FinalApplicationStatus.SUCCEEDED。
7、分配Executors,這里面的分配邏輯和yarn-cluster里面類(lèi)似,就不再說(shuō)了。
8、最后,Task將在CoarseGrainedExecutorBackend里面運(yùn)行,然后運(yùn)行狀況會(huì)通過(guò)Akka通知CoarseGrainedScheduler,直到作業(yè)運(yùn)行完成。
9、在作業(yè)運(yùn)行的時(shí)候,YarnClientSchedulerBackend會(huì)每隔1秒通過(guò)client獲取到作業(yè)的運(yùn)行狀況,并打印出相應(yīng)的運(yùn)行信息,當(dāng)Application的狀態(tài)是FINISHED、FAILED和KILLED中的一種,那么程序?qū)⑼顺龅却?br/>10、最后有個(gè)線程會(huì)再次確認(rèn)Application的狀態(tài),當(dāng)Application的狀態(tài)是FINISHED、FAILED和KILLED中的一種,程序就運(yùn)行完成,并停止SparkContext。整個(gè)過(guò)程就結(jié)束了。

關(guān)于spark on yarn的兩種提交方式分別是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

新聞名稱(chēng):sparkonyarn的兩種提交方式分別是什么
文章地址:http://jinyejixie.com/article6/ggepog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)做網(wǎng)站、網(wǎng)站策劃外貿(mào)建站、網(wǎng)站導(dǎo)航網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)