为每个Spark执行程序设置自定义java.rmi.server.hostname

时间:2016-07-25 14:45:16

标签: java apache-spark jmx yarn

我有一个在YARN上运行的Spark进程(有10个工作者和10个主机),我希望能够在执行程序上使用JMX。 让我们说简化一下,我确定每台主机上最多只有一个执行器(以避免端口冲突)。

无法在Spark Conf上使用spark.executor.extraJavaOptions,因为每个主机都需要有不同的java.rmi.server.hostname

我找不到根据YARN容器/ Spark执行器设置自定义java选项的方法,您将如何进行?

我认为应该使用System.setProperty("java.rmi.server.hostname", ...)动态设置,但是当执行程序启动时,我没有任何钩子"我吗?

1 个答案:

答案 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