Как запустить задачу мезоса на конкретном исполнителе?

Я пишу структуру mesos и хочу выполнять свои задачи с помощью своего собственного исполнителя. Я просмотрел пару других кодовых баз фреймворка mesos (chronos и marathon) и написал планировщик, который выполняет команды оболочки, используя исполняющую команду по умолчанию. Теперь я хочу заменить исполнителя по умолчанию чем-то нестандартным. Проблема в том, что я не могу понять, как зарегистрировать экзекьютор с слейвом. В документации по созданию фреймворка указано, что это должен быть исполняемый файл, и вы можете указать путь, используя executorInfo, но я не понимаю, как именно это сделать. Кроме того, какой смысл иметь интерфейс Executor, который должен реализовать каждый исполнитель, и в то же время требовать исполняемый файл поверх всего этого? Каковы аргументы исполняемого файла?


person user1639848    schedule 16.12.2013    source источник


Ответы (1)


Исполняемые ссылки исполняемого файла на библиотеку mesos и интерфейсы / обратные вызовы исполнителя — это единственный способ получать уведомления о таких событиях, как регистрация, перерегистрация и отключение, происходящих в ведомом устройстве, или когда ваш фреймворк выдает запросы launchTask или killTask.

Он состоит из двух частей (точно так же, как и фреймворки), состоящих из ExecutorDriver и вашей реализации исполнителя.

Если вы посмотрите на 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), например. TaskInfo в launchTask, TaskID в killTask ​​и так далее.

Когда дело доходит до фреймворка и вы хотите зарегистрировать свой собственный исполнитель, попробуйте взглянуть на https://github.com/mesosphere/mesos-go/blob/master/src/mesos.apache..org/example_framework/main.go .

Надеюсь, это поможет, и дайте мне знать, если мне нужно расширить что-либо из вышеперечисленного.

person Niklas Quarfot Nielsen    schedule 18.12.2013