我们正在运行 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 等),对此进行了轻微修改。也不存在换行符,仅将其放在这里以使其更具可读性。