web-dev-qa-db-ja.com

スタンドアロンマスターで複数のsparkアプリケーションを並行して実行するにはどうすればよいですか?

Spark(1.6.1)スタンドアロンマスターを使用して、同じsparkマスターで複数のアプリケーションを実行する必要があります。最初のアプリケーションの後に送信されたすべてのアプリケーション、常に「WAIT」状態を保持し続けます。また、実行中の1つはワーカーのすべてのコアの合計を保持します。すでにSPARK_EXECUTOR_CORESを使用して制限しようとしましたが、実行中のyarn configは「スタンドアロンマスター」です。多くのワーカーを実行してみました同じマスター上にありますが、最初に送信されたアプリケーションがすべてのワーカーを消費するたびに。

9
Sankalp

sparkスタンドアロンクラスターでも同じ問題が発生していました。

私が得たのは、どういうわけか、1つのジョブにすべてのリソースを利用しているということです。他のジョブを実行するためのスペースになるように、リソースを定義する必要があります。

以下は、sparkジョブを送信するために使用しているコマンドです。

bin/spark-submit --class classname --master spark://hjvm1:6066 --deploy-mode cluster  --driver-memory 500M --conf spark.executor.memory=1g --conf spark.cores.max=1 /data/test.jar
9
user8117884

Sparkスタンドアロンクラスターで複数のジョブを並行して実行するための重要なパラメーターはspark.cores.max。ご了承ください spark.executor.instancesnum-executorsおよびspark.executor.coresだけでは、Sparkスタンドアロンでこれを達成することはできません。単一のアクティブなジョブを除くすべてのジョブは、WAITINGステータスでスタックします。

Spark-スタンドアロンリソーススケジューリング

スタンドアロンクラスターモードは現在、アプリケーション間で単純なFIFOスケジューラーのみをサポートします。ただし、複数の同時ユーザーを許可するために、各アプリケーションが使用するリソースの最大数を制御できます。デフォルトでは、取得されます。クラスター内のすべてのコア。これは、一度に1つのアプリケーションを実行する場合にのみ意味があります。spark.cores.maxを設定することでコアの数を制限できます。

2
MaxNevermind

1つのサーバーですべてのワーカーを実行し、クラスターをシミュレートしようとしていると想定しています。この仮定の理由は、そうでない場合は、1つのワーカーとマスターを使用してスタンドアロンSparkクラスターを実行できるためです。
エグゼキュータコアは、通常のコアとはまったく異なるものです。エグゼキュータの数を設定するには、前に述べたようにYARNをオンにする必要があります。エグゼキュータコアは、エグゼキュータが実行できる同時タスクの数です(hdfsを使用する場合は、これを5未満に保つことをお勧めします)[ 1 ]。

ワーカーを実行するために制限するコアの数は「CPUコア」です。これらは、Spark 1.6.1 [ 2 ]の構成で指定されます。Sparkには、金額を設定するオプションがありますスレーブの起動時のCPUコアの数[]。これは-c CORES、-coresCORESで発生します。これはSparkマシンで使用(デフォルト:すべて使用可能)、ワーカーでのみ使用。

Sparkを開始するコマンドは次のようになります:

./sbin/start-all.sh --cores 2

お役に立てれば

1
Paul Velthuis

構成設定で、この行を「./conf/spark-env.sh」このファイルに追加します。

export SPARK_MASTER_OPTS = "-Dspark.deploy.defaultCores = 1"

マスターの最大コア数は1に制限されます。複数のsparkアプリケーションが実行されている場合、マスターには1つのコアのみが使用されます。次に、ワーカーの数を定義し、ワーカーに設定を与えます。

export SPARK_WORKER_OPTS = "-Dspark.deploy.defaultCores = 1"

その場合、各ワーカーにも1つのコアがあります。 これは構成設定ですべてのワーカーに設定する必要があることに注意してください。

0
midhunxavier