我向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}
从这里你可以看到系统属性丢失
答案 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}
见