美文网首页
Spark监控篇

Spark监控篇

作者: 喵星人ZC | 来源:发表于2019-05-19 13:46 被阅读0次

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 Name Default Meaning
spark.history.fs.update.interval 10s 文件系统历史提供程序在日志目录中检查新日志或更新日志的周期。较短的间隔可以更快地检测新应用程序,但代价是需要更多的服务器负载重新读取更新的应用程序。一旦更新完成,已完成和未完成的应用程序的清单将反映更改
spark.history.retainedApplications 50 在缓存中保留UI数据的应用程序数量。如果超过这个上限,那么最老的应用程序将从缓存中删除。如果应用程序不在缓存中,则必须从磁盘加载它(如果是从UI访问它)
spark.history.ui.port 18080 Web 默认端口
spark.history.fs.cleaner.enabled false 是否周期性的删除storage中的event log(生产必定是true)
spark.history.fs.cleaner.interval 1d 多久删除一次
spark.history.fs.cleaner.maxAge 7d 每次删除多久的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的监控
参考美团文章

相关文章

网友评论

      本文标题:Spark监控篇

      本文链接:https://www.haomeiwen.com/subject/krafzqtx.html