2016-06-17 3 views
5

​​--conf spark.executorEnv.FOO=barで実行プログラム環境変数を構成することができ、environmentVariablesフィールドでいくつかの環境変数を渡すことができます。 クラスタモードで​​でドライバを提出する際残念ながら、私はドライバーの環境変数を設定するには、同様のものが見つからなかっました:spark-submitを使用してクラスターモードでスパーク・ドライバーに環境変数を渡す方法

spark-submit --deploy-mode cluster myapp.jar 

それがクラスタモードで​​とドライバの環境変数を設定することは可能ですか?

+0

私はスタンドアローンモードでスパークを使用していると言わざるを得ない。糸やメゾスを使わないでください –

+0

結局何か方法がありましたか? –

答えて

1

はい、可能です。あなたがしているように、あなたがspark-submitで投稿する必要がある変数は何ですか?

spark-submit --deploy-mode cluster myapp.jar 

変数をhttp://spark.apache.org/docs/latest/configuration.htmlから取り、最適化を使用するかどうかによって異なります。このlinkも役に立ちます。

私はクラスタモードで使用するために使用されるが、次のように私の変数があるので、今、私はYARNに使用しています。この中(うまくいけば便利)

[email protected]:/usr/local/spark$ ./bin/spark-submit --class com.hastimal.Processing --master yarn-cluster --num-executors 15 --executor-memory 52g --executor-cores 7 --driver-memory 52g --driver-cores 7 --conf spark.default.parallelism=105 --conf spark.driver.maxResultSize=4g --conf spark.network.timeout=300 --conf spark.yarn.executor.memoryOverhead=4608 --conf spark.yarn.driver.memoryOverhead=4608 --conf spark.akka.frameSize=1200 --conf spark.io.compression.codec=lz4 --conf spark.rdd.compress=true --conf spark.broadcast.compress=true --conf spark.shuffle.spill.compress=true --conf spark.shuffle.compress=true --conf spark.shuffle.manager=sort /users/hastimal/Processing.jar Main_Class /inputRDF/rdf_data_all.nt /output /users/hastimal/ /users/hastimal/query.txt index 2 

、以下の私のjarファイルは、クラスの引数です。

CC /inputData/data_all.txt /出力/ユーザー/ hastimal/ /users/hastimal/query.txtインデックス糸で2

+0

OPは環境変数について質問していますが、この回答はJavaプロパティの設定方法を示しています。 –

3

は、少なくとも、この作品:

spark-submit --deploy-mode cluster --conf spark.yarn.appMasterEnv.FOO=bar myapp.jar


は、それはhttp://spark.apache.org/docs/latest/configuration.html#environment-variablesで述べています

注:clusterモードでYARNでSparkを実行する場合、conf/spark-defaults.confファイルのspark.yarn.appMasterEnv.[EnvironmentVariableName]プロパティを使用して環境変数を設定する必要があります。

私はあなたがグローバルのconfファイルを編集する必要がないように、それは、​​ため--confフラグを渡すことができることをテストしています。

0

あなたがセットアップするために、環境変数を執行し、マスターノード上の分類の下に使用することができます。あなただけのspark.yarn.appMasterEnv.FOO = "foo"を設定した場合

[ 
    { 
    "Classification": "yarn-env", 
    "Properties": {}, 
    "Configurations": [ 
     { 
     "Classification": "export", 
     "Properties": { 
      "VARIABLE_NAME": VARIABLE_VALUE, 
     } 
     } 
    ] 
} 
] 

、その後のenv変数は、エグゼキュータインスタンスに存在しません。

+0

分類はEMR(AWS)固有のメカニズムです。 OPはEMRを使用して指定しなかった – xor007

関連する問題