如何将 JMXConsole 远程连接到 Spark 流应用程序
How to connect JMXConsole remotely to Spark streaming application
我有一个 Spark 流应用程序 运行,它处于从 Kafka 主题读取的 yarn-cluster 模式。
我想将 JMXConsole
或 Java visualvm
连接到 Cloudera 发行版中的这些远程进程以收集一些性能基准。
我该怎么做?
我这样做的方法是set/add以下属性(同时启动飞行记录器):
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 查找分配了哪个端口。
我有一个 Spark 流应用程序 运行,它处于从 Kafka 主题读取的 yarn-cluster 模式。
我想将 JMXConsole
或 Java visualvm
连接到 Cloudera 发行版中的这些远程进程以收集一些性能基准。
我该怎么做?
我这样做的方法是set/add以下属性(同时启动飞行记录器):
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 查找分配了哪个端口。