推荐两个:
1.使用jvisualvm
可以使用jvisualvm来监控Spark应用程序(Application),从而可以看到Spark应用程序堆,线程的使用情况
1、在$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
jmx默认的是1099端口
2、启动Spark应用程序 3、打开jvisualvm.exe监控你的Spark应用程序 在JDK安装的bin目录下有个jvisualvm.exe,双击它,然后进行配置,依次选择 文件-> 添加JMX连接,然后会弹出一个对话框,在连接文本框里面填上你Driver机器的地址和端口,比如: ip地址:1099。然后就可以看到监控画面 2.spark自己也有提供的可配置信息 master:Spark管理进程applications:位于master的组件,统计发送各种应用的信息worker:Spark工作进程executor:执行器driver:Spark驱动程序每一个实例可以向多个渠道发送统计信息。 更多如下: Spark基于Coda Hale Metrics库提供一个可配置的统计系统。 这允许用户向不同的终端发送统计信息,包括HTTP、JMX和CSV文件。 统计系统可以通过配置文件来进行配置,Spark默认将配置文件保存在SPARKHOME/conf/mertics.conf。 用户可以通过Javapropertyspark.metrics.conf来修改配置文件的保存路径。 Spark根据组件的不同将统计信息分为多个实例。 可以配置每一个实例向多个方向发送统计信息。 目前支持下面几种实例:master:Spark管理进程applications:位于master的组件,统计发送各种应用的信息worker:Spark工作进程executor:执行器driver:Spark驱动程序每一个实例可以向多个渠道发送统计信息。 渠道包含在包org.apache.spark.metrics.sink:ConsoleSink:将统计信息发送到控制台CSVSink:每隔一段时间将统计信息写入到CSV文件GangliaSink:将统计信息发送到Ganglia或者多播组JmxSink:将统计信息注册到JMX控制台MetricsServlet:在SparkUI中添加servlet用来以JSON的方式提供统计信息统计信息配置文件的语法有一个示例文件——SPARKHOME/conf/mertics.conf。用户可以通过Javapropertyspark.metrics.conf来修改配置文件的保存路径。 Spark根据组件的不同将统计信息分为多个实例。可以配置每一个实例向多个方向发送统计信息。 目前支持下面几种实例:master:Spark管理进程applications:位于master的组件,统计发送各种应用的信息worker:Spark工作进程executor:执行器driver:Spark驱动程序每一个实例可以向多个渠道发送统计信息。渠道包含在包org.apache.spark.metrics.sink:ConsoleSink:将统计信息发送到控制台CSVSink:每隔一段时间将统计信息写入到CSV文件GangliaSink:将统计信息发送到Ganglia或者多播组JmxSink:将统计信息注册到JMX控制台MetricsServlet:在SparkUI中添加servlet用来以JSON的方式提供统计信息统计信息配置文件的语法有一个示例文件——SPARK_HOME/conf/metrics.conf.template.
|