日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mesos Framework开发指南 一

發(fā)布時(shí)間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mesos Framework开发指南 一 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

Mesos Framework開發(fā)指南 一 博客分類: 架構(gòu) mesos Framework Development Guide


簡介:描述了如何基于Mesos構(gòu)建應(yīng)用.

Framework開發(fā)指南


在本文檔中,我們把Mesos程序集稱為Framework。?
你可以在源代碼目錄MESOS_HOME/src/examples/看到FrameworkScheduler的例子。通過例子來理解MesosFrameworkScheduler并選擇你喜歡語言進(jìn)行執(zhí)行。RENDLER提供了以C++,Go,Haskell,Java,Python和Scala語言所實(shí)現(xiàn)的Framework例子供你選擇。?

創(chuàng)建框架Scheduler(Framework Scheduler)


你可以用C、C++、Java/Scala或者Python語言編寫一個(gè)框架Scheduler,它需要繼承Scheduler類(見下面Scheduler API)。Scheduler應(yīng)當(dāng)創(chuàng)建一個(gè)SchedulerDriver負(fù)責(zé)Scheduler和Mesos master的通信,然后調(diào)用SchedulerDriver.run()函數(shù)。

SchedulerAPI(Scheduler API)


framework schedulers程序?qū)崿F(xiàn)的回調(diào)接口
聲明如下代碼位于:MESOS_HOME/include/mesos/scheduler.hpp?。
/*?
* 空的虛擬的析構(gòu)函數(shù) (需要把析構(gòu)函數(shù)實(shí)例化成子類).
*/?
virtual?~Scheduler() {}
?/*?
* 函數(shù)在當(dāng)Scheduler成功在MesosMaster中注冊(cè)時(shí)被調(diào)用。
* FrameworkID是在Framework中由Master生成一個(gè)唯一的ID,用于區(qū)別其他Scheduler。
* MasterInfo以參數(shù)的形式提供當(dāng)前的Master?IP地址和端口。
*/
?virtual?void?registered(SchedulerDriver* driver,
???????????????????????const?FrameworkID& frameworkId,?
????????????????????????const?MasterInfo& masterInfo) =?0;
?/*?
* 函數(shù)在Scheduler再次在新當(dāng)選的Master注冊(cè)時(shí)被調(diào)用。
*只有當(dāng)Scheduler以前被注冊(cè)過時(shí)調(diào)用。
* MasterInfo以參數(shù)的形式表示新當(dāng)選的Master的更新信息。
*/?
virtual?void?reregistered(SchedulerDriver* driver,?
????????????????????????const?MasterInfo& masterInfo) =?0;
?/*?
* 函數(shù)在SchedulerMaster變成"鏈接"時(shí)被調(diào)用。
* (舉例來說, 當(dāng)前Master關(guān)閉并由其他的Master接管)。
*/?
virtual?void?disconnected(SchedulerDriver* driver) =?0;?
/*
* 函數(shù)在資源已經(jīng)被提供給這個(gè)Framework時(shí)被調(diào)用。最簡單的offer僅包含一個(gè)簡單slave的資源。?
* 這些資源以一個(gè)offer的形式打包提供給當(dāng)前Framework對(duì)象,除非發(fā)生異常情況,則不在提交。
* 第一種當(dāng)前或者某個(gè)Framework拒絕了這些資源,才能夠再次提交offer。
* (請(qǐng)查看 SchedulerDriver::launchTasks) 或者第二種情況取消了這些資源
* (請(qǐng)查看 Scheduler::offerRescinded)。
* 注意:資源可能在同一時(shí)間提交給一個(gè)或者多個(gè)Framework(根據(jù)分配器的分配情況)。 * 如果上面的事情發(fā)生, 首先拿到offer的Framework將會(huì)使用這些資源來啟動(dòng)Tasks,導(dǎo)致其他Tasks獲取?
* offer的Framework取消這些資源的使用(或者某個(gè)Framework已經(jīng)使用這些資源啟動(dòng)了Tasks
* 這些Tasks將會(huì)伴隨著TASK_LOST狀態(tài)而失敗,并發(fā)送過多的消息通知)。?
*/?
virtual?void?resourceOffers(SchedulerDriver* driver,
???????????????????????????const?std::vector<Offer>& offers) =?0;?
/*
* 函數(shù)在某個(gè)offer不在有效時(shí)被調(diào)用。(舉例來說, 節(jié)點(diǎn)不可用或者資源被其他Framework的offer占用)。?
* 如下發(fā)生以下情況offer均不會(huì)撤銷 (舉例來說, 丟棄信息,Framework運(yùn)行失敗,等等。),
* 當(dāng)Framework嘗試啟動(dòng)那些沒有有效offer的Tasks時(shí),Framework會(huì)收到那些Tasks發(fā)送TASK_LOST的狀態(tài)更新?
* (請(qǐng)查看Scheduler::resourceOffers).?
*/?virtual?void?offerRescinded(SchedulerDriver* driver,?
????????????????????????????const?OfferID& offerId) =?0;?
/*
* 函數(shù)在一個(gè)Tasks的狀態(tài)發(fā)生變化時(shí)被調(diào)用。(舉例來說, 一個(gè)節(jié)點(diǎn)(slave)丟失并且Tasks丟失,?
* 一個(gè)Tasks完成并且Executors發(fā)送了一個(gè)狀態(tài)更新回話,等等)。 如果使用隱式定義implicit?
* acknowledgements, 以 _acknowledges_ 的收據(jù)作為這個(gè)狀態(tài)的更新作為回調(diào)函數(shù)返回!?
* 如果發(fā)生Scheduler無論何種原因在回調(diào)函數(shù)的時(shí)候終止(或者進(jìn)程退出)另一個(gè)狀態(tài)更新將會(huì)被提交?
* (注意,無論如何,如果slave發(fā)送狀態(tài)更新是丟失或者失敗。在那段時(shí)間是不正確的)。
* 如果使用的是顯示explicit acknowledgments,Scheduler必須在驅(qū)動(dòng)中知道這個(gè)狀態(tài)。
*/?
virtual?void?statusUpdate(SchedulerDriver* driver,
?????????????????????????const?TaskStatus& status) =?0;?
/*?
* 函數(shù)在當(dāng)Executors發(fā)送消息時(shí)被調(diào)用。?
* 這些消息是盡力服務(wù):在任何可靠的方式下,絕不期望Framework消息會(huì)被重新提交。 */?
virtual?void?frameworkMessage(SchedulerDriver* driver,
???????????????????????????????const?ExecutorsID&?ExecutorsId,
???????????????????????????????const?SlaveID& slaveId,?
????????????????????????????????const?std::string& data) =?0;?
/*
* 函數(shù)在當(dāng)某個(gè)slave確定不能找到時(shí)被調(diào)用。(舉例來說,設(shè)備故障,網(wǎng)絡(luò)隔離)。
* 絕大部分Framework會(huì)以在新的slave上重新啟動(dòng)所有Tasks的方式進(jìn)行調(diào)度。
*/?
virtual?void?slaveLost(SchedulerDriver* driver,?
?????????????????????const?SlaveID& slaveId) =?0;?
/*?
* 函數(shù)在Executors退出或者中斷時(shí)被調(diào)用。注意:任何Tasks的運(yùn)行將會(huì)自動(dòng)生成TASK_LOST的狀態(tài)更新。
*/?
virtual?void?ExecutorsLost(SchedulerDriver* driver,?
????????????????????????const?ExecutorsID&?ExecutorsId,?const?SlaveID& slaveId,?
?????????????????????????int?status) =?0;?
/*?
* 函數(shù)在一個(gè)未被Scheduler或者Scheduler驅(qū)動(dòng)不能捕獲的錯(cuò)誤發(fā)生時(shí)被調(diào)用。
*?Scheduler驅(qū)動(dòng)將會(huì)在這個(gè)回調(diào)函數(shù)執(zhí)行之前執(zhí)行。
*/
?virtual?void?error(SchedulerDriver* driver,?
????????????????????const?std::string& message) =?0;

?

http://blog.csdn.net/a515983690/article/details/51446043

轉(zhuǎn)載于:https://my.oschina.net/xiaominmin/blog/1598943

總結(jié)

以上是生活随笔為你收集整理的Mesos Framework开发指南 一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。