我有一个200节点的mesos集群,可以同时运行大约2700个执行程序。我的遗嘱执行人中约有10-20%的人在一开始就处于失败状态。它们只用于解压缩执行程序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/'
我的执行者tar球非常大(大约40 MB左右),大多数需要30秒以上下载的执行器都会丢失。 mesos master是否等待所有执行程序,直到某个时间段进行注册并在执行者未能执行此操作时将其标记为LOST?
执行人详细信息:
我正在使用python来实现调度程序和执行程序。执行程序代码是一个python文件,它扩展了基类' Executor'。我已经实现了Executor类的launchTasks方法,它只执行执行程序应该执行的操作。
执行人信息是:
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"
答案 0 :(得分:2)
具有从站的执行程序的默认超时为1分钟,可以使用--executor_registration_timeout
从站标志进行更改。
- executor_registration_timeout = VALUE在考虑挂起并关闭它之前等待执行器向从机注册的时间(例如,60秒,3分钟等)(默认值:1分钟)