如何将JMXConsole远程连接到Spark流应用程序

时间:2016-03-08 00:47:30

标签: apache-spark jmx spark-streaming visualvm

我有一个Spark流应用程序,以纱线群集模式运行,读取Kafka主题。

我希望将JMXConsole或Java visualvm连接到Cloudera发行版中的这些远程进程,以收集一些性能基准。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:3)

我这样做的方法是设置/添加以下属性(也启动Flight Recorder):

spark.executor.extraJavaOptions=-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=0

如果每个盒子上只有一个工作程序,则可以将端口设置为固定。如果您有多个,那么您需要使用端口0并使用lsof来查找已分配的端口,。