私はクライアントアプリケーションが接続できるようにgrpcを使用するSpark 2アプリケーションを持っています。スパーク2:ノードがマスタかワーカーかを確認してください
しかし、grpcコードは、作業者ではなくマスターノードでのみ起動します。
スパーク2では、コードが現在実行されているノードがマスターノードであるかどうかをチェックする可能性はありますか?
私はクライアントアプリケーションが接続できるようにgrpcを使用するSpark 2アプリケーションを持っています。スパーク2:ノードがマスタかワーカーかを確認してください
しかし、grpcコードは、作業者ではなくマスターノードでのみ起動します。
スパーク2では、コードが現在実行されているノードがマスターノードであるかどうかをチェックする可能性はありますか?
あなたからドライバのホスト名を取得することができます:私は「ホスト」を使用してそれを行うための方法を好きではない、あなたは右のインターフェイスのマッチングに依存し、また、同じノードが両方のドライバを含めることができます
sc.getConf.get(“spark.driver.host”)
をチェックしてください: 'java.net.InetAddress.getLocalHost()。getHostName()== mainContext.sc.getConf.get(" spark.driver.host ")'は、私が – navige
というよりは、平等をチェックする、http://stackoverflow.com/questions/2406341/how-to-check-if-an-ip-address-is-the-local-host-on-a-multi-homed-system – navige
私はドンを参照してくださいこれはまったく安全だとは思わないでしょう。ローカルモードまたは糸クラスターでコードを実行すると、エグゼキュータはドライバと同じ位置に着陸することができます。 – BiS
とマスター。個人的に、私は
spark.executorEnv.RUNNING_ON_EXECUTOR=yes
、その後、私のコードで(ここではPythonを使用して、それが他の言語で動作するはずです)変数の環境を設定します。
import os
if "RUNNING_ON_EXECUTOR" in os.environ:
//Run executor code
else:
//run driver code
あなたはドライバーが走っているところ*について話しています*から? –
はい!実行しているコードがドライバの一部として実行されているかどうかをチェックしたいと思います。 – navige