Spark监控篇

Spark监控官网地址

一、每个Spark程序都有的4040端口Web 界面进行监控
Every SparkContext launches a web UI, by default on port 4040, that displays useful information about the application. This includes:

  • A list of scheduler stages and tasks
  • A summary of RDD sizes and memory usage
  • Environmental information.
  • Information about the running executors

image.png

这种方式有一个很严重的弊端就,就是这个4040 Web UI只在程序运行期间可以看,程序运行完毕后就看不了。所以就有了我们的第二种监控,spark-history-server。

二、通过配置spark-history-server相关参数来监控Application
这种方式会创建一个默认的18080 web interface界面查看完成和未完成的Spark Application信息。说先会将Spark Application信息写入到spark.eventLog.dir目录下,然后spark-history-server回去这个目录把日志信息渲染到Web UI供开发人员查看。
1、配置Spark Application信息写入的的路径

[hadoop@hadoop000 logs]$ cd $SPARK_HOME/conf
---------------------------------------------------------------
vim spark-defaults.conf
---------------------------------------------------------------
 spark.eventLog.enabled           true
 spark.eventLog.dir               hdfs://hadoop000:8020/spark_eventLog

2、Spark History Server Configuration Option在Spark-env.sh中完成

vim spark-env.sh
---------------------------------------------------------------
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop000:8020/spark_eventLog"

其他相关参数:

Property NameDefaultMeaning
spark.history.fs.update.interval10s文件系统历史提供程序在日志目录中检查新日志或更新日志的周期。较短的间隔可以更快地检测新应用程序,但代价是需要更多的服务器负载重新读取更新的应用程序。一旦更新完成,已完成和未完成的应用程序的清单将反映更改
spark.history.retainedApplications50在缓存中保留UI数据的应用程序数量。如果超过这个上限,那么最老的应用程序将从缓存中删除。如果应用程序不在缓存中,则必须从磁盘加载它(如果是从UI访问它)
spark.history.ui.port18080Web 默认端口
spark.history.fs.cleaner.enabledfalse是否周期性的删除storage中的event log(生产必定是true)
spark.history.fs.cleaner.interval1d多久删除一次
spark.history.fs.cleaner.maxAge7d每次删除多久的event log,配合上一个参数就是每天删除前七天的数据

3、HDFS创建存放event log 路径

hadoop fs -mkdir spark_eventLog

4、启动historyserver

./start-history-server.sh

image.png

每个Application都会生成一个日志文件

[hadoop@hadoop000 sbin]$ hadoop fs -ls /spark_eventLog
Found 1 items
-rwxrwx---   1 hadoop supergroup      38056 2019-05-19 13:33 /spark_eventLog/local-1558243986730

三、REST API监控
如果公司有自己的监控平台,想获取到Spark Application日志信息到平台展示可以通过REST API

1、获取所有的Application
http://hadoop000:18080/api/v1/applications

image.png

 

2、获取正在跑或者完成的application
http://hadoop000:18080/api/v1/applications/?status=running
http://hadoop000:18080/api/v1/applications/?status=completed

3、只获取1条application
http://hadoop000:18080/api/v1/applications/?limit=1
还可以获取到指定时间内的application,具体请参考官网

4、获取某一具体的application
http://hadoop000:18080/api/v1/applications/local-1558243986730

四、基于ES的监控
参考美团文章
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值