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 暴露端口。

相关推荐
北岛贰12 分钟前
啵啵音乐迎来全新升级!
前端
2601_970703831 小时前
工业除湿机租赁:把一份租金合同拆开看
大数据·数据结构·算法·数据库架构·推荐算法
心疼你的一切2 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
hkNaruto2 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
IT_陈寒2 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
王中阳Go2 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
Acro2 小时前
快给macOS 上的Grok Bot换一套皮肤
前端
flash俊杰3 小时前
双引擎 OCR 编排:逐页判定、视觉优先、partial 语义与三层超时
前端
演艺大赏3 小时前
Paimon 1.3.1 报 Proxy user is not supported:Kyuubi + Kerberos 集成排查与源码级定位
大数据
计算机魔术师3 小时前
Reddit 每周被 Google 偷走 100 万次点击,CEO 摊牌了
前端