Flink HistoryServer配置(简单三步完成)

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的默认配置图

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路径:


hdfs图

4、访问http://host:8082可以查看到历史完成任务状态:

host:8082 web的历史完成任务状态

注意:

生产中遇到突然这个服务丢失,然后重启任务失败。通过排查任务是historyserver.web.tmpdir: /tmp/flinkhistoryserver/这个路径被删除了。

推荐阅读更多精彩内容