????????這篇文章我們來討論一下Master的注冊機制笙纤;那么有哪些信息需要注冊到Master上面去呢?很簡單组力,分別有Worker的注冊省容,Driver的注冊,Application的注冊燎字。明確了這個以后我們來看一張圖腥椒;
關(guān)于Worker和Driver的注冊阿宅,上面圖中已經(jīng)說的很詳細了,我們著重來看看Application的注冊流程是如何實現(xiàn)的寞酿。
1.在Driver注冊完成之后家夺,接著執(zhí)行Application代碼,初始化SparkContext伐弹,通過 ? ? ? ? ? ? ?SparkDeploySchedulerBackend的AppClient內(nèi)部的線程拉馋,ClientActor發(fā)送RegisterApplication到Master進行注冊;
2.Master接收到請求后惨好,將Application信息寫入到內(nèi)存緩沖中煌茴,并將其加入到等待調(diào)度隊列中;
3.使用持久化引擎將數(shù)據(jù)進行持久化操作日川,最后調(diào)用Schedule開始相關(guān)任務(wù)的調(diào)度執(zhí)行蔓腐;
下面我們看看spark源碼是怎么對其進行實現(xiàn)的。
解釋:上圖中的sender其實是代表了ClientActor龄句,所以會講Application的注冊信息發(fā)送給ClientActor回论。
總結(jié),本篇內(nèi)容較短分歇,但是完整的闡述了Worker傀蓉,Driver,Application的注冊機制职抡,下篇會來闡述一下我們的Driver葬燎,Application注冊完成以后的scheduler調(diào)度是如何實現(xiàn)的,同時也是非常非常重要的一個環(huán)節(jié)缚甩,歡迎關(guān)注谱净。如需轉(zhuǎn)載,請注明:
上一篇:Spark內(nèi)核分析之Spark的HA源碼分析