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

    应看到 jobmanagertaskmanager 容器处于 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 暴露端口。

相关推荐
hashiqimiya7 小时前
windows的hadoop集群环境直接配
大数据·hadoop·分布式
AI自动化工坊7 小时前
DeerFlow 2.0实战指南:生产级AI Agent框架的Docker化部署与并行编排
人工智能·docker·ai·容器·开源
升鲜宝供应链及收银系统源代码服务7 小时前
《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册升鲜宝》
java·前端·数据库·chatgpt·供应链系统·生鲜配送
AI营销先锋8 小时前
原圈科技GEO解密:AI营销变革下,如何抢占增长先机?
大数据·人工智能
i建模8 小时前
将Edge浏览器的标签页从顶部水平排列**移至左侧垂直侧边栏
前端·edge
跟着珅聪学java8 小时前
js编写中文转unicode 教程
前端·javascript·数据库
英俊潇洒美少年8 小时前
Vue3 深入响应式系统
前端·javascript·vue.js
pingao1413789 小时前
智慧井盖传感器:革新传统,开启地下管网智能运维新时代
大数据
行者-全栈开发9 小时前
容器化时代来临 - Docker 技术演进与核心价值
运维·docker·容器·cicd·自动化构建·容器化时代
云飞云共享云桌面9 小时前
非标自动化研发成本高?云飞云共享云桌面:1台主机=10台工作站,年省数十万。
大数据·运维·服务器·人工智能·自动化·云计算·电脑