У меня есть кластер mesos из 200 узлов, который может одновременно запускать около 2700 исполнителей. Около 5-10% моих исполнителей ПОТЕРЯНЫ в самом начале. Они идут только до извлечения tar-файла исполнителя.
WARNING: Logging before InitGoogleLogging() is written to STDERR I0617 21:35:09.947180 45885 fetcher.cpp:76] Fetching URI 'http://download_url/remote_executor.tgz' I0617 21:35:09.947273 45885 fetcher.cpp:126] Downloading 'http://download_url/remote_executor.tgz' to '/mesos_dir/remote_executor.tgz' I0617 21:35:57.551722 45885 fetcher.cpp:64] Extracted resource '/mesos_dir/remote_executor.tgz' into '/extracting_mesos_dir/'
Пожалуйста, дайте мне знать, если кто-то еще сталкивается с этой проблемой.
Я использую python для реализации планировщика и исполнителя. Код исполнителя представляет собой файл Python, который расширяет базовый класс «Исполнитель». Я реализовал метод launchTasks класса Executor, который просто делает то, что должен делать исполнитель.
Информация об исполнителе:
executor = mesos_pb2.ExecutorInfo()
executor.executor_id.value = "executor-%s" % (str(task_id),)
executor.command.value = 'python -m myexecutor'
# where to download executor from
tar_uri = '%s/remote_executor.tgz' % (
self.conf.remote_executor_cache_url)
executor.command.uris.add().value = tar_uri
executor.name = 'some_executor_name'
executor.source = "executor_test"