了解Flink中的History Server:记录和展示作业历史信息的重要工具
myzbx 2025-10-14 01:59 5 浏览
Flink 中的 History Server 是一个非常有用的组件,可以在相应的 Flink 集群关闭之后查询已完成作业的统计信息。并且,它还提供了一个 REST API,可接受 HTTP 请求并以 JSON 数据作为响应。本文将详细介绍 Flink History Server 的工作原理和主要功能。
一、History Server工作原理
Apache Flink 自带了一个 HistoryServer 进程,它是一个独立的 Web 服务器。HistoryServer 不参与 Flink 作业执行,仅用于展示作业的历史信息。它的工作原理如下:
- JobManager 会将已完成的作业的信息以存档文件的形式写入 HDFS 或者其他持久存储中。
- HistoryServer 读取这些存档文件,并提供 Web 界面展示其信息内容。
- 用户通过 HistoryServer 的 Web UI 查看作业记录和运行数据。
每个作业完成后,JobManager 会把该作业的信息打包成一个个 JSON 格式的归档文件,包括作业配置信息、作业执行过程中的 Checkpoint 信息、已完成作业的统计数据等,并存储在 HDFS 或者其他文件系统中。HistoryServer 会定期轮询这些归档文件所在的目录,所包含的存档会被下载缓存在本地文件系统中,以便在 Web UI 展示。
二、History Server的主要功能
通过 History Server Web UI,用户可以查看 Flink 已完成作业的各种历史信息,主要包含以下方面:
- 查看所有已完成作业列表,以列表的形式展示了每一次作业执行的概览信息。
- 作业配置信息,包括并行度设置、系统参数等。
- 作业计划(Execution Graph),以图的形式展示作业的拓扑结构。
- 作业内所有任务(Vertex)的统计数据,如每个任务的运行时长、发送记录数等。
- 作业失败或异常信息,可以指导定位故障。
- 作业执行过程中的 Checkpoint 信息,如 Checkpoint 失败次数、Checkpoint 统计信息等。
- 支持以图表的形式查看作业时间线(Timeline),可以很直观地观察作业的执行过程。
三、History Server配置
JobManager
根据 History Server 的工作原理,我们知道 JobManager 负责已完成作业的归档工作,即将已完成的作业的信息写入到 HDFS 或者其他持久存储中,以供 History Server 查询展示。所以我们需要在 flink-conf.yaml 文件中配置已完成作业的存档目录(通过 jobmanager.archive.fs.dir 设置),如:
|
|
HistoryServer
已完成作业的存档目录配置好后,接下来就是配置 HistoryServer。通过设置
historyserver.archive.fs.dir 告诉 HistoryServer 需要从哪些目录读取已完成作业的信息。该配置项通常与 jobmanager.archive.fs.dir 一致,即 JobManager 将已完成的作业信息存放在哪里,HistoryServer 就去哪里读。如果目录有多个,可以使用英文逗号分隔。
|
|
此外,还可以通过配置项
historyserver.archive.fs.refresh-interval设置 HistoryServer 定期读取目录的时间间隔(单位为毫秒),如设置每 10 秒刷新一次:
|
|
HistoryServer 会将目录所包含的存档下载并缓存在本地文件系统中,本地目录可以通过 historyserver.web.tmpdir 配置。
HistoryServer 的 WebUI 监听的地址和端口,可通过以下配置项 historyserver.web.address和 historyserver.web.port 设置:
|
|
配置参数
配置项 | 默认值 | 类型 | 说明 |
historyserver.archive.clean-expired-jobs | false | Boolean | 是否应清理不再存在于 |
historyserver.archive.fs.dir | (none) | String | 以逗号分隔的目录列表,用于获取存档作业。HistoryServer 将监控这些目录中的存档作业。 |
historyserver.archive.fs.refresh-interval | 10000 | Long | 刷新存档工作目录的间隔(毫秒)。 |
historyserver.archive.retained-jobs | -1 | Integer |
|
historyserver.log.jobmanager.url-pattern | (none) | String | JobManager 的日志 URL 模式。HistoryServer 将从中生成实际 URL,并将特殊占位符 替换为作业 ID。仅支持 http / https 方案。 |
historyserver.log.taskmanager.url-pattern | (none) | String | 任务管理器日志 URL 的模式。HistoryServer 将从中生成实际 URL,并将特殊占位符 和 分别替换为 job 和 TaskManager 的 id。仅支持 http / https 方案。 |
historyserver.web.address | (none) | String | HistoryServer WebUI 地址。 |
historyserver.web.port | 8082 | Integer | HistoryServer WebUI 端口。 |
historyserver.web.refresh-interval | 10000 | Long | HistoryServer 网络前端的刷新间隔(毫秒)。 |
historyserver.web.ssl.enabled | false | Boolean | 启用 HTTP 访问 HistoryServer 网络前端。只有当全局 SSL 标志 security.ssl.enabled 设为 true 时才适用。 |
historyserver.web.tmpdir | (none) | String | HistoryServer REST API 用于临时文件的本地目录。 |
四、启动History Server
在配置好 HistoryServer 和 JobManager 之后,可以使用以下的脚本来启动和停止 HistoryServer:
启动 HistoryServer
|
|
停止 HistoryServer
|
|
需要注意的是:HistoryServer 目前只能作为独立的进程运行。
小结
Flink 中的 History Server 是一款非常实用且强大的组件,它通过记录和展示 Flink 作业的历史运行信息,为审计和调试作业提供了重要的手段。该工具采用独立的 Web 服务器,不参与作业执行,仅用于展示作业的历史信息。History Server 的工作原理是 JobManager 将完成作业的信息存档到 HDFS 或其他持久存储,然后 History Server 读取并下载缓存到本地文件系统中,以提供 Web 界面展示。
通过 History Server 的 Web UI,我们可以轻松查看已完成作业列表、任务统计数据、作业失败异常信息、Checkpoint 信息等。借助 History Server,我们可以审计已完成的作业,分析和优化作业性能,定位故障原因,是非常必要的辅助工具。
以上是 Apache Flink History Server 的简要介绍,希望对大家有所帮助。
相关推荐
- Xbox Series X具有比PS5更高的有效I/O吞吐量
-
来源:cnBeta在今年3月宣布XboxSeriesX时,微软就已经预告了全新的XboxVelocity架构,宣称可为次世代主机带来前所未有的功能体验。据悉,XboxVelocity体系结构有...
- 科个普:固态硬盘之友!DirectStorage显存直通车
-
谁能想到有一天,固态硬盘之友竟然是一个API——为了解决游戏Loading烦人的等待时间,微软利用NVMeSSD的超高读写速度特性,有针对性的开发了DirectStorageAPI,它可以让游戏直...
- 虚拟机备份应注意四大问题_虚拟机备份命令
-
2015-01-1405:48:00作者:赵为民虚拟化技术在近两年发展的非常快,很多企业都采用虚拟机技术来解决企业IT基础设施所面临的一些问题,如硬件过度浪费,扩展难等问题,但对于企业来说,保证企...
- PS4支持进入倒计时:2026年春季新发售的PS4游戏将停用部分功能
-
PlayStation似乎正在逐步开始淘汰对上世代主机PS4的支持。据InsiderGaming独家报道,PS4的一些传统服务将在2026年春季停止提供。InsiderGaming收到的文件显示...
- 2026年春季起索尼PS4平台新发行游戏将停用部分旧版PSN功能
-
IT之家10月2日消息,据游戏媒体InsiderGaming今天报道,部分文件显示,索尼互娱似乎已经准备开始逐步淘汰PS4游戏机。InsiderGaming收到的文件显示,索尼...
- 吞吐量18.09GB/s,硬盘启用DirectStorage 1.1的GPU解压功能实测
-
IT之家12月21日消息,AMD在今年5月初曾表示,即便用户装备了NVMe的存储设备,也可能无法满足SmartAccessStorage(该技术建立在微软DirectStora...
- 面试官:如何让localStorage支持过期时间设置?
-
聊到localStorage想必熟悉前端的朋友都不会陌生,我们可以使用它提供的getItem,setItem,removeItem,clear这几个API轻松的对存储在浏览器本地的...
- 2025年是时候对localstorage说再见了
-
localStorage隐藏风险在前端开发领域,localStorage自诞生之日起就一直是数据持久化的首选方案。凭借其看似简单的setItem/getItemAPI,它成为了存储用户偏好和应用状...
- 前端最能打的本地存储方案_前端数据存储
-
前言之前开发了一个离线存储的需求,需要在本地存储较大的数据量,并且还要考虑到多种场景下的存储方式兼容。产品的原话就是“要又大又全”。既然存储量大,也要覆盖全多种设备多种浏览器。方案选择既然要存储的数量...
- 抛弃 localStorage,这个存储方案更安全更高效
-
在前端开发的世界里,浏览器存储一直是我们处理客户端数据持久化的重要工具。多年来,localStorage凭借其简单易用的API和跨会话持久化能力,成为了许多开发者的默认选择。然而,随着Web...
- 软件性能测试中链接追踪工具Zipkin工具的使用
-
大家好,今天一起来学习一下在软件性能测试过程中如何使用Zipkin这个工具来追踪链接程序逻辑链路上的相关问题首先我们了解一下Zipkin是什么?Zipkin是Twitter的一个开源项目,基于G...
- Vue3管理系统实现动态路由和动态侧边菜单栏
-
在做Vue管理系统的时候,都会遇到的一个需求:每个用户的权限是不一样的,那么他可以访问的页面(路由),可以操作的菜单选项是不一样的,如果由后端控制,我们前端需要去实现动态路由,动态渲染侧边菜单栏。实现...
- JS删除上一条浏览器历史记录的方法(登录回退)
-
JS使用window.location.replace删除上一条浏览器历史记录的方法(登录回退)一、问题如果用户登录状态过期,或者没有登录,当用户登录之后回退上一个页面的时候,就会回退到登录页面,这样...
- LightRAG: 简单快速的检索增强生成工具
-
这里是Aideas,每日分享AI相关资讯。本文由AideasAgent整理并推荐。项目地址:/HKUDS/LightRAG,程序语言:Python,收藏:14,287,分支:1,996,...
- 实战指南:React 路由与Ant Design集成
-
路由管理:如何在React项目中集成react-router-dom使用前的准备:安装react-router-dom为了在React项目中使用路由功能,首先需要安装react-router-dom...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)
- JS Loop For (32)