spark history server是spark提供的spark应用历史数据查询服务,可以通过history server页面查看已经运行结束的spark应用的所有job执行情况,用于分析,因为spark集群保存的spark应用数量和每个应用的job数量有一定的限制,对于时间比较久远的应用或者应用的job数据无法在spark的web ui查看到并进行分析。所以spark提供了history server服务用于对spark应用的历史数据进行管理、查看、分析。
1、配置
history server相关配置介绍
history server相关的配置可以写在spark-default.conf文件,也可以
相关配置参数如下:
spark.eventLog.enabled 是否启动spark事件日志,默认false,既关闭
spark.eventLog.dir spark事件日志存储目录路径,默认/tmp/spark-events,强烈建议配置为hdfs路径
spark.eventLog.compress 是否对事件日志进行压缩,默认false;如果开启压缩,使用配置参数spark.io.compression.codec指定的压缩算法,该参数默认压缩算法为lz4。
spark.history.provider 一个ApplicationHistoryProvider抽象类的实现类,用于从从存储在文件系统中的事件日志获取应用的历史信息。目前默认实现类为FsHistoryProvider。
spark.history.fs.logDirectory job日志存储路径,目录必须已经创建,默认值为/tmp/spark-events,建议将目录配置为hdfs路径,这样当app和history server不再同一台机器运行时,同样可以访问history数据。该配置项必须要和spark.eventLog.dir配置项相同,history server需要从
spark.history.fs.cleaner.maxAge job日志清理时间,默认值为7d,既7天
spark.history.store.path 用于缓存app history信息的本地目录路径,默认没有配置,所有所有的app history信息都是保存在内存中
spark.history.store.maxDiskUsage 本地磁盘最大使用量,默认是10g
spark.history.ui.port history server服务ui绑定端口,默认是18080
修改配置文件spark-default.conf文件
修改在spark-default.conf配置文件,添加history server相关的配置项
添加必须以下配置项:
2、启动history server
创建history server存储事件日志目录
此处配置的事件日志存储目录是hdfs的spark_history目录,需要手动创建该目录,否则启动app和history server会报错
使用hdfs命令创建事件日志目录:
启动history server
使用spark的sbin目录下的start-history-server.sh脚本启动history server:
浏览器访问history server服务:
因为没有提交的app,所有没有任何提交的app记录。
接下来,启动一个spark-shell app,然后退出
在重新刷新一下history server页面
发现多了一个app的提交历史记录。
到此,spark的history server启动就算成功了。