2017-06-02 13 views
1

我々はそうのようなクラスタ上でスパークジョブを実行します。Sparkクラスの環境変数の値を取得する方法は?

export HADOOP_USER_NAME=blah 
spark-submit --class "com.myapp.MyClass" --master yarn --deploy-mode cluster .... 

が、我々はSystem.getenvを使用してMyClass.scalaにアクセスHADOOP_USER_NAMEにしようとしたとき、我々はNULL値を取得します。これはおそらく、env変数がクラスタ上で実行されているマシンに伝播しないためです。どうすればこの問題を解決できますか?

答えて

0

spark.*接頭辞--confプロパティを設定し、SparkConf又はspark.conf構成インターフェースを使用して、任意の他のプロパティとしてアクセスするスパークトリックを使用します。

spark-submit --conf spark.HADOOP_USER_NAME=$HADOOP_USER_NAME ... 
+0

これは私たちがやっていることです。 confに追加する代わりにJARに入力するコマンドラインオプションに-owner $ HADOOP_USER_NAME – morpheus

+0

のようなコマンドラインオプションを追加します。私はSparkにそのためのメカニズムはないと思います。 –

関連する問題