在Mesos集群上运行spark-streaming时缺少java系统属性

时间:2016-03-08 16:00:34

标签: spark-streaming mesos

我向mesos集群提交了一个spark应用程序(在集群模式下运行),并通过$authority传递java系统属性,但这些系统属性在运行时不可用,似乎没有设置。 "--drive-java-options=-Dkey=value -Dkey=value"不起作用

更多细节: 命令是

--conf "spark.driver.extraJavaOptions=-Dkey=value"

我有一个双节点的mesos集群,一个节点都运行master和slave,另一个节点只运行slave。我在主节点上提交了spark应用程序。

在内部,应用程序希望从java系统属性“configuration.http”读取配置文件,如果该属性不可用,应用程序将从类路径的根目录加载默认文件。当我提交应用程序时,我从日志中看到已加载默认配置文件。

运行应用程序的实际命令是

bin/spark-submit --master mesos://10.3.101.119:7077 --deploy-mode cluster --class ${classname} --driver-java-options "-Dconfiguration.http=http://10.3.101.119:9090/application.conf" --conf "spark.executor.extraJavaOptions=-Dconfiguration.http=http://10.3.101.119:9090/application.conf" ${jar file}
从这里你可以看到系统属性丢失

1 个答案:

答案 0 :(得分:1)

您可以查看this blog post建议使用外部属性文件来实现此目的:

$ vi app.properties
spark.driver.extraJavaOptions   -Dconfiguration.http=http://10.3.101.119:9090/application.conf
spark.executor.extraJavaOptions –Dconfiguration.http=http://10.3.101.119:9090/application.conf

然后尝试通过

运行
bin/spark-submit --master mesos://10.3.101.119:7077 --deploy-mode cluster --class ${classname} —-properties-file app.properties ${jar file}