1

約 2700 のエグゼキューターを同時に実行できる 200 ノードのメソ クラスターがあります。私のエグゼキュータの約 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 マスターは、特定の期間が登録されるまですべてのエグゼキュータを待機し、エグゼキュータが登録に失敗した場合に LOST のマークを付けますか?

エグゼキュータの詳細:

python を使用して、スケジューラとエグゼキュータの両方を実装しています。Executor コードは、基本クラス「Executor」を拡張する 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