新聞中心
本文以Hadoop框架為例,介紹了framework與executor向mesos注冊過程。

成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序設(shè)計(jì)、公眾號(hào)商城、等建站開發(fā),成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。
1. Framework注冊過程
(1) JobTracker啟動(dòng)時(shí),會(huì)調(diào)用MesosScheduler的start()方法
(2) MesosScheduler的start()方法創(chuàng)建一個(gè)MesosSchedulerDriver對象,并將自己作為參數(shù)傳入該對象。
(3) MesosSchedulerDriver初始化,創(chuàng)建一個(gè)SchedulerProcess對象
(4) MesosSchedulerDriver初始化,調(diào)用MasterDetector::create(),它將向SchedulerProcess對象發(fā)送一個(gè)NewMasterDetectedMessage消息
(5) SchedulerProcess對象收到NewMasterDetectedMessage消息后,向Master發(fā)送一個(gè)RegisterFrameworkMessage消息
(6) Master收到該消息后,保存相關(guān)信息,并返回FrameworkRegistedMessage消息,確認(rèn)framework注冊成功
2. Executor注冊過程
本節(jié)描述框架frameworkX在某個(gè)slaveX上注冊executor executorX的過程:
(1)Master***次向slaveX發(fā)送執(zhí)行frameworkX中task的消息 RunTaskMessage
(2)slave收到該消息后,運(yùn)行相應(yīng)的消息處理函數(shù)runTask()
(3)該函數(shù)發(fā)現(xiàn)該slave上未啟動(dòng)frameworkX對應(yīng)的executorX,則調(diào)用IsolationModule的lauchExecutor()函數(shù)
(4)該函數(shù)創(chuàng)建一個(gè)FrameworkExecutor對象,并調(diào)用ExecutorProcess的Initialize()函數(shù)進(jìn)行初始化,同時(shí)啟動(dòng)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ù)再進(jìn)一步調(diào)用FrameworkExecutor的registered()函數(shù)
接下來,master發(fā)送給slave的RunTaskMessage消息依次經(jīng)過的流程如下圖所示。需要注意的是,對于同一個(gè)計(jì)算框 架,Mesos在一個(gè)slave上只會(huì)創(chuàng)建一個(gè)資源container,所有task全部在這個(gè)container里運(yùn)行,也就是說,mesos無法做到 task級別的隔離,只能做到executor級別的隔離,而對于同一個(gè)框架,同一個(gè)slave上所有task全部在一個(gè)executor中運(yùn)行。
對于Hadoop而言,每個(gè)mesos-slave上只會(huì)創(chuàng)建一個(gè)TaskTracker,且該TaskTracker會(huì)被放置到一個(gè) executor(對應(yīng)一個(gè)linux container)中運(yùn)行,而同一個(gè)TaskTracker上所有task均在該TaskTracker所在進(jìn)程樹中,因而共享該executor對應(yīng) 的資源。當(dāng)TaskTracker接收到新的task時(shí),會(huì)增加該executor可以使用的資源量(使用“l(fā)xc-cgroup –n %s %s %lld”),而當(dāng)有task運(yùn)行完成時(shí),則減少該executor可使用的資源量(使用“l(fā)xc-cgroup –n %s %s %lld”)。
原文鏈接:http://dongxicheng.org/apache-mesos/apache-mesos-framework-executor-registering/
文章標(biāo)題:Mesos的Framework與Executor注冊過程
文章源于:http://m.5511xx.com/article/dhjpodd.html


咨詢
建站咨詢
