2016-05-25 4 views
1

カスタムビルドされたJVMを使用してSparkスタンドアロンクラスタをデプロイしようとしています。 SparkのマスタとSparkのワーカープロセスを実行するのは問題ありませんが、ドライバが起動してマスタに作業を送信すると、ワーカーはJAVA_HOME/bin/javaを調べてExecutorをforkしようとするため、クラッシュします。エグゼキュータの起動方法をカスタマイズしてカスタムJVMを使用する方法はありますか?カスタムJVMでスタンドアロンクラスタをスパークする

答えて

0

これを行う最も簡単な方法は、org.apache.spark.deploy.worker.Workerを継承することでした。私はJavaでそれを行い、LaunchExecutorメッセージだけを処理するPartialFunctionを作成しました。私はそのメッセージを受け取ったときに、私はExecutorRunnerから継承したクラスの別のカスタムインスタンスを作成しました。

私のCustomExecutorRunnerの中で私は自分自身の特別なJavaコマンドを構築し、ExecutorRunnerに実行させるのではなく、それを実行しました。

私はすべてがスムーズに動作するために必要な私的なフィールドにアクセスするのはかなり面倒で、かなりの反射が必要でしたが、うまくいきました。

関連する問題