使用jvisualvm监控Spark作业
本机调试
- 直接运行 jdk自带的 jvisualvm 进行进程,线程的查看和dump中类的调用
远程调试
- 远程运行 jdk自带的 jvisualvm 进行进程,线程的查看和dump中类的调用
spark 支持远程 jvisualvm 配置
jvisualvm工具JDK自带的一个监控工具,该工具是用来监控java运行程序的cpu、内存、线程等的使用情况,并且使用图表的方式监控java程序、还具有远程监控能力,不失为一个用来监控Java程序的好工具。
同样,我们可以使用jvisualvm来监控Spark应用程序(Application),从而可以看到Spark应用程序堆,线程的使用情况,从而根据这些数据去优化您的程序。废话少说,下面来说说怎么配置,使得我们可以使用jvisualvm来监控程序:
在$SPARK_HOME/conf目录下配置spark-default.conf文件,加入如下配置
spark.driver.extraJavaOptions -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
修改$SPARK_HOME/conf目录下配置metrics.properties
增加:*.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink
- 重启动Spark应用程序
- 打开 jdk 中的 jvisualvm