Я пишу рамки mesos, и я хочу выполнить свои задачи, используя мой пользовательский исполнитель. Я прошел через пару других базовых кодовых фреймов mesos (chronos и marathon) и написал планировщик, который выполняет команды оболочки, используя исполняемый файл команды по умолчанию. Теперь я хочу заменить исполнятеля по умолчанию чем-то обычным. Проблема в том, что я не могу понять, как зарегистрировать исполнителя с ведомым. Документация по созданию фреймворка заявляет, что он должен быть исполняемым, и вы можете указать путь с помощью executorInfo, но я не вижу точно, как это сделать. Кроме того, какой смысл иметь интерфейс Executor, который должен выполнять каждый исполнитель, и в то же время требовать от исполняемого файла всего этого? Каковы аргументы для исполняемого файла?Как запустить задачу мезо на конкретном исполнителе?
ответ
Выполняемые исполнителем ссылки на библиотеку mesos, а интерфейсы/обратные вызовы исполнителя - это единственный способ для вас получать уведомления, когда события, такие как регистрация, перерегистрация и отключение происходят в подчиненном устройстве или когда запросы запускаTask или 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.
Надеюсь, что это поможет и сообщит мне, если мне нужно расширить любой из вышеперечисленных.
- 1. Не удалось запустить мезо-мастер
- 2. Apache Spark, используя одну задачу на одном исполнителе
- 3. Как запустить программу на конкретном удаленном компьютере
- 4. Как запустить службу WCF на конкретном порту
- 5. Как запустить задачу MPI?
- 6. как запустить задачу параллельно?
- 7. Как запустить задачу рейка?
- 8. Как запустить непрерывную задачу на сервере ASP.Net?
- 9. Как запустить задачу настройки местоположения на wp8?
- 10. Как запустить бродячую задачу на «бродячий уничтожить»?
- 11. Как запустить задачу несколько раз на jenkins?
- 12. Как запустить искру + кассандра + мезо (dcos) с динамическим распределением ресурсов?
- 13. Запустить процесс на конкретном ядре/процессоре?
- 14. Может ли марафон регистрироваться на несколько мезо?
- 15. Асинхронный процесс на службе-исполнителе
- 16. Как запустить скрытую задачу R?
- 17. Как запустить задачу таймера параллельно?
- 18. запустить консольную задачу асинхронно
- 19. Невозможно запустить глоток задачу
- 20. Как создать собственную структуру мезо?
- 21. Как запустить команду в конкретном каталоге?
- 22. запустить задачу на ui-нить из фрагмента
- 23. Как запустить команду оболочки на уже открытом конкретном терминале?
- 24. Как запустить Findbugs и PMD на конкретном jdk в hudson?
- 25. Как запустить Spark's ApplicationMaster на конкретном узле в кластере YARN?
- 26. Как запустить команду «ионный запуск андроида» на конкретном устройстве?
- 27. Как запустить приложение Meteor на конкретном симуляторе iOS
- 28. Как запустить приложение Windows Store на конкретном мониторе
- 29. Как запустить GWT devmode на конкретном порту с консоли?
- 30. Как запустить cronjob каждые 2 минуты на конкретном часовом диапазоне