我有一个Spark流应用程序,以纱线群集模式运行,读取Kafka主题。
我希望将JMXConsole
或Java visualvm
连接到Cloudera发行版中的这些远程进程,以收集一些性能基准。
我将如何做到这一点?
答案 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来查找已分配的端口,。