2016-10-23 11 views
1

は私のようなパラメータでスパークジョブを実行するための火花サミットコマンドを使用しています:Dynamic Resource Allocationを使用してSparkプログラムを実行するにはどうすればよいですか?

spark-submit --master yarn-cluster --driver-cores 2 \ 
--driver-memory 2G --num-executors 10 \ 
--executor-cores 5 --executor-memory 2G \ 
--class com.spark.sql.jdbc.SparkDFtoOracle2 \ 
Spark-hive-sql-Dataframe-0.0.1-SNAPSHOT-jar-with-dependencies.jar 

今私は、Sparkの動的なリソース割り当てを使用して、同じプログラムを実行します。 Sparkプログラムを実行する際のDynamic Resource Allocationの使用についてお手伝いしてください。

答えて

1

スパーク・ダイナミック・アロケーションでは、spark.dynamicAllocation.enabledはデフォルトでfalseです。

これは、YARNでスパークアプリケーションが実行されているので、spark.shuffle.service.enabledtrueに設定する必要があります。これをチェックしてくださいlink to start the shuffle service on each NodeManager in YARN

次のような構成にも関連します

spark.dynamicAllocation.minExecutors, 
spark.dynamicAllocation.maxExecutors, and 
spark.dynamicAllocation.initialExecutors 

これらのオプションは--conf <prop_name>=<prop_value>

spark-submit --master yarn-cluster \ 
    --driver-cores 2 \ 
    --driver-memory 2G \ 
    --num-executors 10 \ 
    --executor-cores 5 \ 
    --executor-memory 2G \ 
    --conf spark.dynamicAllocation.minExecutors=5 
    --conf spark.dynamicAllocation.maxExecutors=30 
    --conf spark.dynamicAllocation.initialExecutors=10 
    --class com.spark.sql.jdbc.SparkDFtoOracle2 \ 
    Spark-hive-sql-Dataframe-0.0.1-SNAPSHOT-jar-with-dependencies.jar 

を提出スパークから3つの方法

1でアプリケーションをスパークするように構成することができます2.スパークプログラムの中でSparkConf のプロパティは、それは通常ならばspark-defaults.confで同じ構成は、すべてのスパークのアプリケーションに適用する$SPARK_HOME/conf/

場所に位置

val conf: SparkConf = new SparkConf() 
conf.set("spark.dynamicAllocation.minExecutors", "5"); 
conf.set("spark.dynamicAllocation.maxExecutors", "30"); 
conf.set("spark.dynamicAllocation.initialExecutors", "10"); 
..... 

SparkSessionまたはSparkContextを作成して設定し

コードだけでなくコマンドラインからの設定も渡されません。

Spark - Dynamic Allocation Confs

+0

私のクラスタでは、spark.dynamicAllocation.enabledがtrueです。 d –

+0

私のクラスタでは、spark.dynamicAllocation.enabledがtrueです。この機能を使用するには、私はプログラム的な同盟関係を行う必要がありますか? Spark-submitコマンドは何が必要ですか? –

+0

必要ありません。上記のいずれかの場所で述べたように、最大​​エグゼキュータを指定すると問題ありません。 – mrsrinivas

関連する問題