2017-06-02 351 views
1

我们在集群上执行火花的工作,像这样:如何在Spark类中获取环境变量的值?

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

可是当我们尝试使用System.getenv访问HADOOP_USER_NAMEMyClass.scala我们得到了一个空值。也许这是因为env变量没有传播到群集上运行的机器上。我们如何解决这个问题?

回答

0

使用火花招与spark.*前缀设置--conf属性和访问它作为使用SparkConfspark.conf配置接口的任何其他属性。

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

这几乎是我们正在做的。而不是在conf中添加它,我们添加到命令行选项输入到我们的JAR,如-owner $ HADOOP_USER_NAME – morpheus

+0

我认为Spark中没有内置机制。 –