乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Mesos Framework開發(fā)指南 一

       碼農(nóng)書館 2017-09-11



      簡介:描述了如何基于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;





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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多