spark监控入门

前言

Spark做为计算引擎天天承载了大量的计算任务,为了监控集群的资源使用状况,对spark的监控也在所不免,Spark的监控有3个入口,1. Rest; 2.另外一个是Metrics; 3. Log。html

 

Rest

参考spark的rest接口文档apache

http://spark.apache.org/docs/latest/monitoring.htmljvm

spark支持把每一个计算实例的执行信息写到hdfs,而后经过historyserver或者本身去hdfs上找到文件解析出来。数据包括spark执行关键点,job,stage,task,数据种类上大体和MapReduce收集的内容差很少,主要是jvm,资源,shuffle,io这四个方面。spa

 

Metrics

默认状况spark不打开metrics,也就是没有metrics数据,能够看配置conf/metrics.properties,默认都是被注释掉的。Spark内置了多种metrics的sink方式,控制台,csv,slf4j等。rest

案例日志

打开基于控制台的metrics sink。如图1,将3个配置的注释去掉,将metrics信息每过10s打印到控制台上。如图2,spark会将内存信息,job调度信息以及其余一些信息打印出来。server

图1htm

图2blog

 

Log

Spark在on yarn模式下,日志由yarn统一管理,通常状况,咱们会选择把yarn的日志聚合功能打开,spark的日志也会跟着上传到hdfs上,这样本身去解析日志也会很容易。若是想要经过日志来监控spark任务执行状况,那么可能会须要业务层面的埋点,不然只能针对一些异常平常进行监测。接口

 

总结

Spark因为自己只是计算执行引擎,没有常驻进程(history server不算),因此在监控层面相对比较灵活,可是也有复杂的地方。当天天有成千上万个spark任务提交到集群执行的时候,那么须要监控的数据量就上来了,粒度越细,监控的压力越大。

相关文章
相关标签/搜索