日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Framework開發(fā)指南 三

 碼農(nóng)書館 2017-09-11
故障處理
怎樣搭建在故障時仍可用的Mesos frameworksseparate document中進(jìn)行討論。

如何使用Executor



 使用Mesos Command Executor


Mesos 提供了一個簡單的executor,它可以執(zhí)行shell命令和代表framework schedulerDocker container。足夠滿足各種各樣的框架的功能需求。
任何scheduler都可以使用 Mesos command executor 通過填寫可選的CommandInfo 。TaskInfo protobuf 消息的成員。
message TaskInfo {
  ...
  optional CommandInfo command = 7;
  ...
}
 
當(dāng)Tasks被指定這種方式時,Mesos slave將填寫ExecutorInfo 的剩余信息。

創(chuàng)建自定義Framework Executor



如果你的framework有特殊要求, 您可能希望提供您自己的Executor執(zhí)行程序。 例如,你可能不希望tasksprocesses之間1:1的關(guān)系 .
你的framework executor 必須繼承于Executor.必須重構(gòu) launchTask() 方法你也可以在executor使用 $MESOS_HOME環(huán)境變量來確定Mesos 可執(zhí)行程序的位置。

Executor API


聲名于 MESOS_HOME/include/mesos/executor.hpp
 
/*
*當(dāng)executor驅(qū)動程序已成功連接Mesos時調(diào)用。特別是,一個Scheduler可以通過
*FrameworkI*nfo.ExecutorInfo數(shù)據(jù)域傳遞一些到它的Executor。
virtual void registered(ExecutorDriver* driver,
                        const ExecutorInfo& executorInfo,
                        const FrameworkInfo& frameworkInfo,
                        const SlaveInfo& slaveInfo);
 
/*
*當(dāng)executor和一個重新啟動的slave重新注冊時調(diào)用.
*/
virtual void reregistered(ExecutorDriver* driver, const SlaveInfo& slaveInfo);
/*
當(dāng)executorslave變?yōu)闊o連接時調(diào)用。
* (例如,slave因更新而重啟時。).
*/
virtual void disconnected(ExecutorDriver* driver);
 
/*
當(dāng)一個task 被發(fā)布到這個executor (通過Scheduler::launchTasks初始化的)時調(diào)用注意這個*task通過 一個線程、一個進(jìn)程或一些簡單的計算然而,知道這個函數(shù)返回這個executor不會再
*調(diào)用其他的回調(diào)函數(shù)。
*/
virtual void launchTask(ExecutorDriver* driver, const TaskInfo& task);
 
/*
當(dāng)一個運行于這個executor的Task終止(通過schedulerdriver::killtask)時調(diào)用。
*注意狀態(tài)更新代表這個Executor被發(fā)送,這個Executor負(fù)責(zé)創(chuàng)建一個新的TaskStatus(注,帶 *TASK_KILLED標(biāo)志)并調(diào)用ExecutorDriver::sendStatusUpdate
*/
virtual void killTask(ExecutorDriver* driver, const TaskID& taskId);
 
/*
當(dāng) framework消息到達(dá)這個executor時調(diào)用。這些消息的傳輸方式是盡力機制,不要期待framework消息以可靠方式重新轉(zhuǎn)發(fā)。
*/
virtual void frameworkMessage(ExecutorDriver* driver, const std::string& data);
 
/*
*當(dāng)這個executor 要終止其上所有運行的tasks時被調(diào)用.注意在 Mesos 確定這個
*executor終止了所有這個executor沒有發(fā)送中止?fàn)顟B(tài)更新 (TASK_KILLED, TASK_FINISHED, *TASK_FAILED, 等標(biāo)志)tasks之后將產(chǎn)生TASK_LOST狀態(tài)更新.
*/
virtual void shutdown(ExecutorDriver* driver);
 
/*
*當(dāng)executor或executor驅(qū)動發(fā)生一個致命錯誤時調(diào)用。在調(diào)用這個返回函數(shù)前,這個驅(qū)動將終止 。
*/
virtual void error(ExecutorDriver* driver, const std::string& message);

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多