您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Spark中Worker和Master的作用是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
Worker和Master是Spark獨(dú)立集群里用到的類。如果是yarn環(huán)境部署,是不需要這兩個(gè)類的。
Master是Spark獨(dú)立集群的控制者,Worker是工作者,一個(gè)Spark獨(dú)立集群需要啟動(dòng)一個(gè)Master和多個(gè)Worker。Spark提供了Master選舉功能,保障Master掛掉的時(shí)候能選出另一個(gè)Master,做一個(gè)切換的動(dòng)作,這塊原理和ZooKeeper類似,這里知道概念就可以了。
Master的功能一是管理Worker的注冊(cè)和注銷、狀態(tài)變更等,維護(hù)集群的元數(shù)據(jù);而是管理Driver的提交運(yùn)行。
當(dāng)spark程序運(yùn)行driver時(shí),會(huì)通過StandaloneScheduleBackend來調(diào)度分區(qū)任務(wù)的執(zhí)行,這時(shí)候在StandaloneScheduleBackend里面會(huì)有一個(gè)StandaloneAppClient負(fù)責(zé)與Master通信,發(fā)送RegisterApplication消息給Master,Master將等待運(yùn)行的app信息記錄下來,等待schedule方法的調(diào)度,RegisterApplication里包含了要執(zhí)行的Driver的信息(Driver就是我們的spark程序的main方法要做的事)。
Master在進(jìn)度調(diào)度(schedule方法)的時(shí)候,然后選擇一個(gè)Worker作為Driver的執(zhí)行者,這時(shí)會(huì)發(fā)送LaunchDriver消息給Worker,Worker收到后在本地啟動(dòng)Driver。
Master和Worker是機(jī)器層面的概念,和Executor、Driver是兩碼事,這點(diǎn)要注意的。ScheduleBackend是處理Driver和Executor之間的消息通信的。
CoarseGrainedSchedulerBackend是Driver的SchedulerBackend,是公共部分。獨(dú)立集群的StandaloneSchedulerBackend其實(shí)就是繼承了CoarseGrainedSchedulerBackend,共用了與Executor交互的公共代碼,比如LaunchTask消息的處理等。
在Executor上運(yùn)行的是CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend負(fù)責(zé)接收Driver發(fā)送的消息,回復(fù)Driver等。
CoarseGrainedSchedulerBackend發(fā)送LaunchTask消息給Executor的CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend收到LaunchTask后調(diào)用Executor的launchTask方法來執(zhí)行Task。
“Spark中Worker和Master的作用是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(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)容。