溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解Mesos的Framework與Executor注冊過程

發(fā)布時間:2021-11-17 14:57:45 來源:億速云 閱讀:99 作者:柒染 欄目:web開發(fā)

如何理解Mesos的Framework與Executor注冊過程,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

以Hadoop框架為例,介紹了framework與executor向mesos注冊過程。

1. Framework注冊過程

(1) JobTracker啟動時,會調(diào)用MesosScheduler的start()方法

(2) MesosScheduler的start()方法創(chuàng)建一個MesosSchedulerDriver對象,并將自己作為參數(shù)傳入該對象。

(3) MesosSchedulerDriver初始化,創(chuàng)建一個SchedulerProcess對象

(4) MesosSchedulerDriver初始化,調(diào)用MasterDetector::create(),它將向SchedulerProcess對象發(fā)送一個NewMasterDetectedMessage消息

(5) SchedulerProcess對象收到NewMasterDetectedMessage消息后,向Master發(fā)送一個RegisterFrameworkMessage消息

(6) Master收到該消息后,保存相關(guān)信息,并返回FrameworkRegistedMessage消息,確認(rèn)framework注冊成功

如何理解Mesos的Framework與Executor注冊過程

2.     Executor注冊過程

本節(jié)描述框架frameworkX在某個slaveX上注冊executor executorX的過程:

(1)Master***次向slaveX發(fā)送執(zhí)行frameworkX中task的消息 RunTaskMessage

(2)slave收到該消息后,運行相應(yīng)的消息處理函數(shù)runTask()

(3)該函數(shù)發(fā)現(xiàn)該slave上未啟動frameworkX對應(yīng)的executorX,則調(diào)用IsolationModule的lauchExecutor()函數(shù)

(4)該函數(shù)創(chuàng)建一個FrameworkExecutor對象,并調(diào)用ExecutorProcess的Initialize()函數(shù)進行初始化,同時啟動TaskTracker

(5)Initialize()函數(shù)創(chuàng)建消息RegisterExecutorMessage,并發(fā)送給slave

(6)Slave收到該消息后,調(diào)用對象的消息處理函數(shù)registerExecutor,該函數(shù)創(chuàng)建ExecutorRegisteredMessage消息,返回給ExecutorProcess

(7)ExecutorProcess收到該消息后,調(diào)用對應(yīng)的消息處理函數(shù)registered(),該函數(shù)再進一步調(diào)用FrameworkExecutor的registered()函數(shù)

如何理解Mesos的Framework與Executor注冊過程

接下來,master發(fā)送給slave的RunTaskMessage消息依次經(jīng)過的流程如下圖所示。需要注意的是,對于同一個計算框 架,Mesos在一個slave上只會創(chuàng)建一個資源container,所有task全部在這個container里運行,也就是說,mesos無法做到 task級別的隔離,只能做到executor級別的隔離,而對于同一個框架,同一個slave上所有task全部在一個executor中運行。

對于Hadoop而言,每個mesos-slave上只會創(chuàng)建一個TaskTracker,且該TaskTracker會被放置到一個 executor(對應(yīng)一個linux  container)中運行,而同一個TaskTracker上所有task均在該TaskTracker所在進程樹中,因而共享該executor對應(yīng) 的資源。當(dāng)TaskTracker接收到新的task時,會增加該executor可以使用的資源量(使用“l(fā)xc-cgroup –n %s %s  %lld”),而當(dāng)有task運行完成時,則減少該executor可使用的資源量(使用“l(fā)xc-cgroup –n %s %s %lld”)。

如何理解Mesos的Framework與Executor注冊過程

關(guān)于如何理解Mesos的Framework與Executor注冊過程問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI