2016-03-08 101 views
0

我提交的火花应用mesos集群(集群模式下运行),并通过Java系统属性通过"--drive-java-options=-Dkey=value -Dkey=value",但是这些系统属性不可在运行时,似乎他们没有设置。 --conf "spark.driver.extraJavaOptions=-Dkey=value"无法正常工作或缺少Java系统属性运行时,火花流Mesos集群

更多细节: 命令是

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} 

我有两个节点的群集mesos,一个节点上同时运行主机和从机,而另一只运行从属。我在主节点上提交Spark应用程序。

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

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

"sh -c '/home/ubuntu/spark-1.6.0/bin/spark-submit --name ${appName} --master mesos://zk://10.3.101.184:2181/mesos/grant --driver-cores 1.0 --driver-memory 1024M --class ${classname} ./${jar file} '" 

从这里可以看到系统属性丢失

回答

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} 

+0

我必须把这个文件到所有的节点?我们不运行HDFS,所以我必须将属性文件的副本放在所有节点的特殊路径上? – Grant

+0

我的理解是,该文件只能在执行'spark-submit'的节点上出现,但我没有尝试过...... – Tobi