2016-07-25 25 views
1

我有一個運行在YARN上的Spark進程(有10個worker和10個主機),我希望能夠在執行器上使用JMX。 假設爲了簡化,我確信每個主機上最多隻有一個執行程序(以避免端口衝突)。爲每個Spark執行器設置自定義java.rmi.server.hostname

在Spark Conf上使用spark.executor.extraJavaOptions是不可能的,因爲每個主機都需要有不同的java.rmi.server.hostname

我找不到爲每個YARN容器/ Spark執行器設置自定義Java選項的方法,您將如何繼續?

我認爲它應該與System.setProperty("java.rmi.server.hostname", ...)動態設置,但我沒有任何掛鉤「執行程序啓動時」。我呢?

+0

但所有這些執行者真的沒有什麼不同的主機名,不是嗎? –

+0

是的,他們有。 Spark正在紗線模式下運行。所以,執行者在所有主機上發送。 –

回答

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 
相關問題