我有一个在YARN上运行的Spark进程(有10个工作者和10个主机),我希望能够在执行程序上使用JMX。 让我们说简化一下,我确定每台主机上最多只有一个执行器(以避免端口冲突)。
无法在Spark Conf上使用spark.executor.extraJavaOptions
,因为每个主机都需要有不同的java.rmi.server.hostname
。
我找不到根据YARN容器/ Spark执行器设置自定义java选项的方法,您将如何进行?
我认为应该使用System.setProperty("java.rmi.server.hostname", ...)
动态设置,但是当执行程序启动时,我没有任何钩子"我吗?
答案 0 :(得分:0)
您可以在spark.executor.extraJavaOptions
中使用与此类似的内容:
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.rmi.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.local.only=false