Spark1.0.0 的监控方式
Spark1.0.0 的监控方式
Spark1.0.0可以通过以下几种方式来对Spark应用程序进行监控:- Spark应用程序的WebUI或者Spark Standalone的集群监控
- 指标,然后通过支持指标收集的集群监控系统,如ganglia进行监控
- 辅助监控工具
1:WebUI Spark应用程序提交后,driver和Executor之间不断的交换运行信息,可以通过driver的4040端口(默认端口)获取有用的Spark应用程序的运行信息,如:
- Stage和Task
- RDD大小和内存使用情况
- 环境变量信息
- executor的运行信息
- ...
2:指标 Spark采用了基于Coda Hale Metrics Library 的可配置的指标体系,通过各种指标收集器,如JMX、CSV、GraphiteSink、Ganglia等可以进行汇总报告。该指标体系的配置文件位于conf/metrics.properties(通过复制conf/metrics.properties.template生成或自建),如果要采用自定义的配置文件,还需要在属性配置上配置一下spark.metrics.conf。 Spark的指标体系针对Spark不同的组件分解成相应的实例,每个实例涵盖一套指标。Spark现在支持的实例有:
- master
- worker
- applications
- driver
- executor
- ConsoleSink
- CSVSink.
- JmxSink
- MetricsServlet
- GraphiteSink
- GangliaSink 因为版权问题,部署包默认不含有该收集器;如果需要,要重新编译嵌入LGPL授权代码的源码。具体使用参见用ganglia监控Spark1.0.0(正在撰写,迟点给上链接)。
3:辅助监控工具 可以通过一些辅助监控工具对Spark应用程序运行前后和运行过程中系统性能变化来监控Spark应用程序。这些辅助工具有:
- 集群监控系统,如ganglia、negios、zabbix等,这些工具可以监控整个集群的磁盘、网络、内存利用率和性能瓶颈;
- 操作系统性能分析工具,如dstat、iostat、iotop,这些工具可以对单台机器的性能进行细致地分析;
- JVM性能分析工具,如 jstack、jmap、jstat 、jconsole,这些工具可以对JVM进行详细的性能分析。
评论暂时关闭