1. History Server 能解决什么问题
典型痛点
- 集群关闭后,Web UI 上的作业页面消失,无法回看 DAG、算子指标、异常栈、配置
- 需要统一的'历史作业'入口做复盘对比(上线前后、参数变更前后)
- 需要对接外部系统(监控、运维平台、审计平台)通过 API 拉取作业归档数据
History Server 提供能力
- 展示 JobManager 归档下来的已完成作业状态与统计信息
- 提供 REST API(返回 JSON)便于系统集成
Flink History Server 用于在集群关闭后查看已完成作业。JobManager 将归档信息写入文件系统,History Server 轮询并展示 Web UI 及提供 REST API。需配置归档目录、刷新间隔及本地缓存。支持日志集成跳转。生产环境需注意存储权限、插件安装、缓存清理及轮询间隔调整。
典型痛点
History Server 提供能力
整体链路很清晰:
这里的关键点是:归档目录是'文件系统目录',可以是 HDFS,也可以是对象存储(前提是你已安装对应的 Flink filesystem 插件,比如 S3/OSS/GCS/Azure 等)。
History Server 是独立进程(目前只能 standalone 方式运行),用脚本管理:
# Start or stop the HistoryServer bin/historyserver.sh (start|start-foreground|stop)
默认绑定 localhost,端口 8082。
在 Flink 配置文件里指定归档目录:
# Directory to upload completed job information
jobmanager.archive.fs.dir: hdfs:///completed-jobs
这一步只发生在 JobManager:作业结束后把归档信息上传到该目录。
# Monitor the following directories for completed jobs
historyserver.archive.fs.dir: hdfs:///completed-jobs
# Refresh every 10 seconds
historyserver.archive.fs.refresh-interval: 10000
# Local cache directory for downloaded archives
historyserver.web.tmpdir: /path/to/local/tmpdir
要点
historyserver.archive.fs.dir 支持逗号分隔多个目录:适合多集群、多环境汇总refresh-interval 太小会增加 FS 压力,太大则'历史作业出现得慢',一般 10s~60s 根据规模调整web.tmpdir 是本地缓存目录,注意磁盘空间与清理策略(归档多时容易膨胀)Flink 不负责归档日志,但 History Server 可以把日志 URL 模板拼出来,点击就跳到你们已有的日志系统:
# HistoryServer will replace <jobid> with the relevant job id
historyserver.log.jobmanager.url-pattern: http://my.log-browsing.url/<jobid>
# HistoryServer will replace <jobid> and <tmid> with the relevant job id and taskmanager id
historyserver.log.taskmanager.url-pattern: http://my.log-browsing.url/<jobid>/<tmid>
建议把这里对接到你们的日志检索入口(例如按 jobId/tmId 作为查询条件或路径变量),形成'指标页 → 日志页'的闭环排障体验。
所有请求形如:
http://hostname:8082/<path>
常用接口清单(节选)
/config/jobs/overview/jobs/<jobid>/jobs/<jobid>/exceptions/jobs/<jobid>/config/jobs/<jobid>/vertices/jobs/<jobid>/vertices/<vertexid>/jobs/<jobid>/vertices/<vertexid>/subtasktimes/jobs/<jobid>/plan/jobs/<jobid>/jobmanager/log-url/jobs/<jobid>/taskmanagers/<taskmanagerid>/log-url几个常见 curl 例子:
# 查看历史作业总览
curl http://historyserver:8082/jobs/overview
# 查看某个作业异常
curl http://historyserver:8082/jobs/<jobid>/exceptions
# 查看某个作业的执行计划(DAG/plan)
curl http://historyserver:8082/jobs/<jobid>/plan
# 查看某个算子的 subtask 执行耗时
curl http://historyserver:8082/jobs/<jobid>/vertices/<vertexid>/subtasktimes
jobmanager.archive.fs.dir/historyserver.archive.fs.dir 如果用 s3://、oss://、gs://、wasb:// 等路径,必须确保对应插件 jar 在 plugins 中并正确配置凭证
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online