Flink Docker Application Mode 命令解析 - 修改命令以启用 Web UI

默认情况下,Flink 的 Standalone 集群(包括 Docker 部署)会启动 Web UI ,默认端口是 8081。但你的命令使用的是 standalone-job 模式(Application Mode),它的行为有所不同:


1. standalone-job(Application Mode)是否提供 Web UI?

  • ❌ 默认情况下不会暴露 Web UI ,因为 standalone-job 是一个 一次性执行的 Job ,任务完成后容器会退出(尤其是加了 --rm 参数时)。

  • 如果想启用 Web UI,需要:

    1. 使用 jobmanager 角色(而非 standalone-job),这样 Flink 会以常驻服务运行。

    2. 显式映射 8081 端口 (通过 -p 8081:8081)。


2. 如何修改命令以启用 Web UI?

方法 1:改用 jobmanager + taskmanager 模式(推荐)

bash 复制代码
# 启动 JobManager(带 Web UI)
docker run -d \  # -d 表示后台运行
    --mount type=bind,src=/home/xxx/projects/paimon-flink/target/paimon-flink-1.0-SNAPSHOT.jar,target=/opt/flink/usrlib/paimon-flink.jar \
    --name=jobmanager \
    --network flink-network \
    -p 8081:8081 \  # 映射 Web UI 端口
    -e FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
    flink:1.20.1-java11 jobmanager  # 注意这里是 jobmanager,不是 standalone-job

# 启动 TaskManager
docker run -d \
    --mount type=bind,src=/home/xxx/projects/paimon-flink/target/paimon-flink-1.0-SNAPSHOT.jar,target=/opt/flink/usrlib/paimon-flink.jar \
    --network flink-network \
    -e FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
    flink:1.20.1-java11 taskmanager

# 提交 Job(通过 Web UI 或命令行)
docker exec jobmanager bash -c "
    /opt/flink/bin/flink run \
    -d \  # 后台运行
    -c com.dev.flink_nc_demo1 \
    /opt/flink/usrlib/paimon-flink.jar
"

访问 Web UI :

浏览器打开 http://localhost:8081,即可看到 Flink Dashboard。


方法 2:临时调试(保留 standalone-job 但延长生命周期)

如果仍想用 standalone-job,可以通过以下方式临时查看 Web UI:

bash 复制代码
docker run \
    --mount type=bind,src=/home/xxx/projects/paimon-flink/target/paimon-flink-1.0-SNAPSHOT.jar,target=/opt/flink/usrlib/paimon-flink.jar \
    --name=jobmanager \
    --network flink-network \
    -p 8081:8081 \  # 映射端口
    -e FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager; rest.port: 8081" \  # 显式指定 REST 端口
    flink:1.20.1-java11 standalone-job \
    --job-classname com.dev.flink_nc_demo1

注意:

  • Web UI 仅在 Job 运行期间短暂可用(任务结束后容器退出)。

  • 不适合生产环境,仅建议调试使用。


3. 关键配置说明

配置项 作用 示例
jobmanager 角色 启动常驻服务,提供 Web UI flink:1.20.1-java11 jobmanager
-p 8081:8081 将容器端口映射到主机 访问 http://localhost:8081
rest.port 指定 REST 端口(可选) -e FLINK_PROPERTIES="rest.port: 8081"

4. 验证 Web UI 是否工作

  1. 检查容器是否运行:

    bash 复制代码
    docker ps

    应看到 jobmanager 和 taskmanager 容器处于 Up 状态。

  2. 访问 http://localhost:8081,如果看到 Flink Dashboard 表示成功。

  3. 如果无法访问:

    • 检查防火墙/安全组是否放行 8081 端口。

    • 查看 JobManager 日志:

      bash 复制代码
      docker logs jobmanager

      确认是否有 Web frontend listening at http://0.0.0.0:8081 日志。


总结

  • standalone-job 模式:无持久化 Web UI,适合一次性任务。

  • jobmanager 模式:提供 Web UI,适合长期运行的集群。

  • 生产建议 :使用方法 1(jobmanager + taskmanager),并通过 -p 8081:8081 暴露端口。

相关推荐
智圣新创013 分钟前
教育新基建下高校数据治理决策转型:智圣新创决策中台全域建设效能提升路径
大数据·人工智能
李纲明6 分钟前
WordPress 站点变慢:按 TTFB → 缓存 → 查询 → 前端 分层排查(含配置注意)
前端·缓存·性能优化·wordpress·后端开发
程序人生88815 分钟前
PDF 转 Word 版式错乱、表格丢失?DocConverter Web 格式互转引擎的保真实践
前端·人工智能·opencv·机器学习·pdf·word
灯澜忆梦1 小时前
【docker】#2 | 基础命令
docker·容器·eureka
陈然信息站1 小时前
皮尔磁纸板进料安全方案选型指南:O300传感器与myPNOZ、PNOZmulti 2对比
大数据·安全·业界资讯
乐维_lwops1 小时前
2026选择运维监控系统时应该重点考察哪些功能?
大数据·运维·人工智能
粥里有勺糖1 小时前
安利一下最近用的桌面“Agent” | T3 Code
前端·github·ai编程
xy34531 小时前
Axure 9.0 动态面板基本操作
前端·ui·html·axure·原型·产品设计
不停喝水2 小时前
【前端转全栈java速通课】 项目实战④7-11节 操作数据库-登录-注册-修改密码-注销-mubatis-plus简化crud-
java·前端·数据库