05-history-server.md 2.4 KB

HistoryServer 配置(生产环境)

当前状态

  • ❌ HistoryServer 未配置
  • ✅ 开发环境不需要 HistoryServer
  • ⚠️ 生产环境建议配置

为什么开发环境不需要 HistoryServer

开发环境特点

  • 重启容器频率不高
  • 已完成的 Job 在 JobManager 内存中,Web UI 可以看到
  • 真要查历史看 Docker 日志也够了

查看历史 Job 的替代方案

# 查看所有已完成的 Job
docker logs flink-jobmanager 2>&1 | grep "Job switched from state RUNNING to FINISHED"

# 查看某个 Job 的详情
docker logs flink-jobmanager 2>&1 | grep -A 20 "JobID"

生产环境配置 HistoryServer

什么时候需要 HistoryServer

  • ✅ 需要长期保存 Job 历史
  • ✅ JobManager 会频繁重启
  • ✅ 需要审计/合规要求
  • ✅ 需要分析历史性能数据

HistoryServer 架构

JobManager ──→ 归档目录 (HDFS/S3/本地文件)
                    ↓
              HistoryServer ← Web UI 查询

配置方案 1:Docker Compose(简单,但不太推荐)

问题:Flink 官方镜像的 HistoryServer 启动命令有点麻烦,需要正确配置。

建议:生产环境用 Kubernetes。


配置方案 2:Kubernetes(推荐生产用)

要点

  • JobManager 和 HistoryServer 共享归档存储(PVC 或对象存储)
  • jobmanager.web.archive.dir 配置归档目录
  • jobmanager.web.history.archive.dir 配置 HistoryServer 读取目录

Flink 配置参数

JobManager 配置

jobmanager.web.archive.dir: s3://flink-archives/  # 或 hdfs://, file://

HistoryServer 配置

jobmanager.web.history.archive.dir: s3://flink-archives/
jobmanager.web.history.refresh-interval: 10000  # 毫秒

HistoryServer 存储选择

存储类型 适用场景 推荐度
本地文件系统 单机测试 ⭐⭐
HDFS 已有 Hadoop 集群 ⭐⭐⭐
S3/OSS/MinIO 云原生/生产环境 ⭐⭐⭐⭐⭐

总结

  • 开发环境:不需要 HistoryServer,看日志/Web UI 够了
  • 生产环境:建议配置,用 Kubernetes + 对象存储
  • 当前:先不配置,等真正需要时再说

相关文档