2016-12-06 12 views
1

糸を使ってspark submitでジョブを開始すると、ドライバと実行プログラムのノードがランダムに設定されることに気付きました。これを手動で設定することができますので、データを収集してファイルに書き込むときに、同じノードに毎回書き込むことができますか?今のようSparkで手動でドライバを設定する納品先クラスタで送信

、私は遊んでみましたパラメータは以下のとおりです。 spark.yarn.am.port <driver-ip-address> spark.driver.hostname <driver-ip-address>

ありがとう!

答えて

0

--master yarn --deploy-mode clientでYarnに送信すると、送信元のノードにドライバが配置されます。

また、あなたは、プロパティを使用して執行するためにノードラベルを設定することができます。spark.yarn.executor.nodeLabelExpression

は、ノードエグゼキュータのセットを制限YARNノードラベル式は上のスケジュールされます。 2.6以上のバージョンのYARNのみがノードラベル式をサポートしているため、以前のバージョンに対して実行した場合、このプロパティは無視されます。

ドキュメント - yarnclusterや糸・クライアントモードのいずれかで実行することができますRunning Spark on YARN - Latest Documentation

0

スパーククラスタ。

糸クラスターモードでは、Sparkドライバーは、アプリケーションマスタープロセス内で実行されます。このマスタープロセスは、クラスター上のYARNによって管理されます。クライアントマシンは、アプリケーションの起動後に終了します。

糸クライアントモードでは、ドライバはクライアント プロセスで実行され、アプリケーションマスタはYARNからのリソースの要求にのみ使用されます。

モードに応じて、スパークがアプリケーションマスターを選択します。この段階まで無作為に起こったわけではありません。ただし、アプリケーションマスターがリソースマネージャーにタスクの実行を要求するワーカーノードは、ワーカーノードの可用性に基づいてランダムに選択されます。

関連する問題