具有集群模式的Spark 2.1忽略了extraJavaOptions

时间:2017-12-03 10:00:49

标签: apache-spark javaoptions

我们正在运行HortonWorks Spark Distribution 2.1。我们注意到,当我们使用yarn-cluster作为master运行Spark时,无论我们传递什么作为executors.extraJavaOptions都被完全忽略,并且作业在执行程序中维护默认值(通过Spark UI看到)。

我想知道是否有人注意到任何类似的东西并且有一些智慧可以分享。我很乐意提供所需的更多细节。

更新:这是执行的命令以及选项,如下所示:

spark-submit --name streaming-driver --num-executors 40 
    --conf spark.metrics.conf=streaming.metrics.properties 
    --files kafka_client_jaas.conf#kafka_client_jaas.conf,
            appconf.conf#appconf.conf,
            streaming.metrics.properties#streaming.metrics.properties,
            kafka.conf#kafka.conf,log4j.properties#log4j.properties 
    --conf "spark.executor.extraJavaOptions=
               -Dcom.sun.management.jmxremote 
               -Dcom.sun.management.jmxremote.port=0 
               -Dcom.sun.management.jmxremote.rmi.port=0 
               -Dcom.sun.management.jmxremote.authenticate=false 
               -Dcom.sun.management.jmxremote.ssl=false 
               -Dcom.sun.management.jmxremote.local.only=false 
               -Djava.security.auth.login.config=./kafka_client_jaas.conf 
               -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode" 
    --conf spark.metrics.conf=streaming.metrics.properties 
    --conf spark.hadoop.yarn.timeline-service.enabled=false 
    --driver-java-options=" 
           -Dhdp.version=2.5.3.0-37 -Dconfig.file=appconf.conf 
           -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode 
           -Dlog4j.configuration=log4j.properties 
           -Djava.security.auth.login.config=./kafka_client_jaas.conf 
           -Dcom.sun.management.jmxremote 
           -Dcom.sun.management.jmxremote.port=0 
           -Dcom.sun.management.jmxremote.rmi.port=0 
           -Dcom.sun.management.jmxremote.authenticate=false 
           -Dcom.sun.management.jmxremote.ssl=false 
           -Dcom.sun.management.jmxremote.local.only=false" 
    --master yarn-cluster 
    --driver-memory "6g" 
    --properties-file spark.conf --class < class> application.jar

请注意,由于其他一些安全参数(例如keytabs等),这一点略有修改。也不存在换行符,只是为了使其更具可读性。

1 个答案:

答案 0 :(得分:0)

看起来你正在将spark.executor.extraJavaOptions proery包裹在双引号中。我认为只有值应该在引号内部这样的东西:

 --conf spark.executor.extraJavaOptions="
                   -Dcom.sun.management.jmxremote 
                   -Dcom.sun.management.jmxremote.port=0 
                   -Dcom.sun.management.jmxremote.rmi.port=0 
                   -Dcom.sun.management.jmxremote.authenticate=false 
                   -Dcom.sun.management.jmxremote.ssl=false 
                   -Dcom.sun.management.jmxremote.local.only=false 
                   -Djava.security.auth.login.config=./kafka_client_jaas.conf 
                   -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"