#HistoryServer
允许您查询JobManager存档的已完成作业的状态和统计信息。(官网原话)
最适合用于:了解 flink过去完成任务的状态,以及有状态作业的恢复(保存了最后一次的checkpoint地址)
官网地址:https://ci.apache.org/projects/flink/flink-docs-release-1.11/monitoring/historyserver.html
官网配置参数:https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/config.html#history-server
#配置步骤详解
步骤一:
修改flink-1.11.2/conf/flink-conf.yaml文件
#==============================================================================
# HistoryServer
#==============================================================================
# 指定由JobManager归档的作业信息所存放的目录,这里使用的是HDFS
jobmanager.archive.fs.dir: hdfs:///flink/completed-jobs/
# History Server所绑定的ip
historyserver.web.address: xxxx
# 指定History Server所监听的端口号(默认8082)
historyserver.web.port: 8082
# 指定History Server扫描哪些归档目录,多个目录使用逗号分隔
historyserver.archive.fs.dir: hdfs:///flink/completed-jobs/
# 指定History Server间隔多少毫秒扫描一次归档目录
historyserver.archive.fs.refresh-interval: 10000
#查找到的归档文件会下载并缓存到本地存储路径,默认/tmp目录下面,默认路径为System.getProperty("java.io.tmpdir") + File.separator + "flink-web-history-" + UUID.randomUUID() 「下面有两张图,第一张是默认的,第二张是我改成/tmp/flinkhistoryserver/后的」
historyserver.web.tmpdir: /tmp/flinkhistoryserver/
两张图:
historyserver.web.tmpdir的默认配置图:
historyserver.web.tmpdir的自定义路径配置图:
步骤二:
在hdfs的/flink目录下创建completed-jobs目录(权限可以改成777)
步骤三:
启动/关闭命令:
bin/historyserver.sh start/stop
测试:(都是基于on yarn模式)
1、查看启动状态
jps | grep HistoryServer
netstat -antp | grep 8082
2、分别启一个per-job任务、sql任务、基于session启的任务,过一会全部cancel掉,都可以在hdfs路径和/tmp下的自定义目录看到相关数据,最后可以在host:8082上面看到你刚才canceled的任务,如下图:
3、访问hdfs路径:
4、访问http://host:8082可以查看到历史完成任务状态:
###注意:
生产中遇到突然这个服务丢失,然后重启任务失败。通过排查任务是historyserver.web.tmpdir: /tmp/flinkhistoryserver/这个路径被删除了。