0

我们正在运行 HortonWorks Spark Distribution 2.1。我们注意到,当我们以 yarn-cluster 作为 master 运行 Spark 时,我们作为 executors.extraJavaOptions 传递的任何内容都将被完全忽略,并且作业在 executors 中保持默认值(通过 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 等),对此进行了轻微修改。也不存在换行符,仅将其放在这里以使其更具可读性。

4

1 回答 1

0

看起来您也将spark.executor.extraJavaOptionsproery 包装在双引号内。我认为只有值应该在引号内,如下所示:

 --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" 
于 2017-12-03T17:39:43.340 回答