如何对特定的执行者启动mesos任务?

wz3gfoph  于 2021-06-21  发布在  Mesos
关注(0)|答案(1)|浏览(272)

我正在编写一个mesos框架,我想使用我的自定义执行器执行我的任务。我研究了其他几个mesos框架代码库(chronos和marathon),并编写了一个调度器,使用默认的命令执行器执行shell命令。现在我想用自定义的东西替换默认的执行器。问题是我搞不懂如何把遗嘱执行人登记到奴隶那里。关于构建框架的文档说明它应该是一个可执行文件,您可以使用executorinfo提供路径,但我不知道具体怎么做。还有,让每个执行者都必须实现的executor接口同时要求在所有接口之上有一个可执行文件有什么意义?可执行文件的参数是什么?

tvmytwxo

tvmytwxo1#

针对mesos库的executor可执行链接和executor接口/回调是在从属系统中发生注册、重新注册和断开连接等事件时,或者在框架发出launchtask或killtask请求时通知您的唯一方法。
它由两部分组成(就像框架一样),一部分是executordriver,另一部分是executorimplementation。
如果查看mesos/executor.hpp,您会注意到构造函数需要指向执行器的指针。例如

class MyExecutor : public Executor {
  /* Implement registered, reregistered, ... */
}

MesosExecutorDriver* driver = new MesosExecutorDriver(new MyExecutor());
driver->run();
// As long as the executor is running, the callbacks in MyExecutor will
// be invoked by the mesos slave when events and requests are received.

不同的回调将为您提供必要的协议缓冲区(在mesos.proto中定义),例如launchtask中的taskinfo、killtask中的taskid等等。
当它到达框架端并且您想要注册自己的执行器时,请尝试查看https://github.com/mesosphere/mesos-go/blob/master/src/mesos.apache.org/example_framework/main.go .
希望这有帮助,让我知道如果我需要扩大以上任何一个。

相关问题