0

我有一个 200 个节点的 mesos 集群,可以同时运行大约 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 文件。我已经实现了 Executor 类的 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"
4

1 回答 1

0

你能否提供更多关于你的 Executor 应该做什么的细节(最好是 ExecutorInfo 定义和 Executor 本身)?你用来启动执行器的命令是什么(CommandInfo)?

例如执行者的定义看看Rendler。它包括一个示例执行器和ExecutorInfo 定义。Rendler 还包括 Java、GO、Python、Scala 和 Haskell 中的示例。

于 2015-05-28T04:36:29.640 回答