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

相关推荐
Angel_girl31929 分钟前
vue项目使用svg图标
前端·vue.js
難釋懷34 分钟前
vue 项目中常用的 2 个 Ajax 库
前端·vue.js·ajax
Qian Xiaoo36 分钟前
Ajax入门
前端·ajax·okhttp
qq_4639448642 分钟前
【Spark征服之路-2.2-安装部署Spark(二)】
大数据·分布式·spark
爱生活的苏苏1 小时前
vue生成二维码图片+文字说明
前端·vue.js
拉不动的猪1 小时前
安卓和ios小程序开发中的兼容性问题举例
前端·javascript·面试
炫彩@之星1 小时前
Chrome书签的导出与导入:步骤图
前端·chrome
贩卖纯净水.1 小时前
浏览器兼容-polyfill-本地服务-优化
开发语言·前端·javascript
前端百草阁1 小时前
从npm库 Vue 组件到独立SDK:打包与 CDN 引入的最佳实践
前端·vue.js·npm
夏日米米茶1 小时前
Windows系统下npm报错node-gyp configure got “gyp ERR“解决方法
前端·windows·npm