06.flink使用使用flink的web ui界面启动上面的demo程序

Flink Web UI 提交作业通常是指在 Session / Standalone​ 模式下通过 Submit New Job 页面上传 JAR 包。但在 YARN 上,Application 模式​ 官方推荐做法是先用命令行 flink run-application 把作业提交到 YARN,作业拉起后,再通过 YARN ResourceManager UI 的 Tracking URL 跳转到 Flink Web UI 进行监控和管理。

下面分别给出两种操作路径,你可以根据场景选择。

一、方式 A:Session 模式下纯 Web UI 提交(最直观)

适合开发测试、想直接在浏览器里点完就跑的场景。

1. 启动 YARN Session 并拿到 Web UI 地址

export HADOOP_CLASSPATH=$(hadoop classpath)
./bin/yarn-session.sh -jm 1024m -tm 2048m -s 2 -nm "flink-session" -d

启动成功后,命令行末尾会打印 Flink Web UI 的访问地址(通常是 http://<am-host>:8081),也可以从 YARN ResourceManager UI(http://<rm>:8088)的 Application 详情页点击 Tracking UI → ApplicationMaster​ 跳转进去。

2. 在 Web UI 上传 JAR 并提交

打开 Flink Web UI 后:

  1. 左侧点击 "Submit New Job"
  2. 点击 "+ Add New"​ 按钮,选择你本地的 BatchWordCount-1.0-SNAPSHOT.jar 上传
  3. 上传完成后,在 JAR 列表中点击该 JAR 包,弹出配置表单,填写:
    • Entry ClassBatchWordCount(你的主类全限定名)
    • Program Argumentshdfs:///user/hadoop/input.txt hdfs:///user/hadoop/output
    • Parallelism1(WordCount 示例可设为 1,方便查看结果)
  4. 点击 "Submit",作业提交到集群

3. 查看运行结果

  • 提交后自动跳转到 "Running Jobs"​ 页面,可看到作业状态
  • 点击作业 ID 可查看 DAG 图、各算子处理数据量、Checkpoint 状态等
  • 作业完成后,到 HDFS 查看输出:
    hdfs dfs -cat hdfs:///user/hadoop/output/*

二、方式 B:Application 模式 + HDFS(生产推荐,结合 Web UI 监控)

严格意义上的 YARN Application 模式,提交动作必须通过命令行完成(因为 main() 要在 JobManager 上执行),但提交后完全可以通过 Web UI 进行监控、取消等运维操作

1. 前置:把 Flink lib 和作业 JAR 传到 HDFS

# Flink 依赖(一次性)
hdfs dfs -mkdir -p hdfs:///flink/lib
hdfs dfs -put $FLINK_HOME/lib/*.jar hdfs:///flink/lib/

# 作业 JAR
hdfs dfs -mkdir -p hdfs:///flink/jars
hdfs dfs -put BatchWordCount-1.0-SNAPSHOT.jar hdfs:///flink/jars/

2. 命令行提交 Application(关键步骤)

./bin/flink run-application \
  -t yarn-application \
  -d \
  -Djobmanager.memory.process.size=1024m \
  -Dtaskmanager.memory.process.size=2048m \
  -Dtaskmanager.numberOfTaskSlots=2 \
  -Dyarn.application.name="batch-wordcount-demo" \
  -Dyarn.provided.lib.dirs="hdfs:///flink/lib" \
  hdfs:///flink/jars/BatchWordCount-1.0-SNAPSHOT.jar \
  hdfs:///user/hadoop/input.txt \
  hdfs:///user/hadoop/output

提交后返回 Application ID: application_XXXXXXXXX_XXXX

3. 通过 Web UI 监控(核心)

虽然提交用的是命令行,但作业起来后,Web UI 是你最主要的运维界面

Step 1:进入 Flink Web UI

  • 浏览器访问 YARN ResourceManager:http://<rm>:8088
  • 在 Applications 列表中找到 batch-wordcount-demo
  • 点击该 Application 的 Application ID​ 进入详情
  • 点击 Tracking URL​ 列的 ApplicationMaster​ 链接
  • 自动跳转到 Flink Web UI(地址形如 http://<am-host>:8081

Step 2:在 Flink Web UI 中查看作业

  • Overview 页面:显示作业名称、运行时长、状态(RUNNING/FINISHED)、可用 Task Slot 数量
  • Running Jobs:点击作业 ID 进入详情页
    • DAG 图:直观展示算子拓扑(Source → FlatMap → GroupBy/Sum → Sink)
    • SubTasks:查看每个算子的并行度、处理数据量、反压情况
    • Checkpoints:查看 checkpoint 成功率、耗时、存储位置
    • Metrics:查看吞吐量、延迟等实时指标

Step 3:通过 Web UI 管理作业

  • Cancel Job:在 Running Jobs 页面点击作业,进入详情后点击 "Cancel Job" 可停止作业(Application 模式下取消作业,整个 Flink 集群会自动关闭)
  • 也可以命令行取消:
    ./bin/flink cancel -t yarn-application -Dyarn.application.id=application_XXXXXXXXX_XXXX

4. 查看输出结果

hdfs dfs -cat hdfs:///user/hadoop/output/*
# 输出示例:
# (flink,2)
# (hello,2)
# (of,1)
# (world,2)

三、两种方式对比与选择

 

维度

方式 A:Session + Web UI 提交

方式 B:Application + Web UI 监控

提交入口

浏览器 Upload JAR

命令行 flink run-application

Web UI 作用

提交 + 监控

仅监控和运维

资源隔离

弱(Session 共享)

强(独立集群)

客户端开销

中(需上传 JAR 到 JobManager)

极小(yarn.provided.lib.dirs 远程拉取)

适用场景

开发测试、快速验证

生产环境推荐

💡 如果你希望在 Web UI 上"一键提交",那就用 方式 A(Session 模式);如果你追求生产级的隔离性和轻量化提交,就用 方式 B(Application 模式),Web UI 在这里承担监控和运维的角色。

四、常见坑点提醒

  1. Web UI 端口访问不到:YARN 上 Flink Web UI 的端口是动态分配的,必须通过 YARN ResourceManager UI 的 Tracking URL 跳转,不能直接猜 :8081
  2. JAR 上传失败:Session 模式下通过 Web UI 上传的 JAR 大小有限制(默认 100MB),超大 JAR 请用 Application 模式 + HDFS 路径
  3. Entry Class 填错:Web UI 上传 JAR 后,如果 JAR 中只有一个主类,UI 会自动填充;如果有多个,需要手动指定全限定名(如 com.example.BatchWordCount
  4. HDFS 路径权限:确保 Flink 的 YARN 用户有读写 HDFS 路径的权限,否则作业会报 Permission Denied

按照方式 B 操作,你既能享受 Application 模式的生产级隔离,又能利用 Web UI 强大的可视化监控能力,这是当前 Flink on YARN 生产部署的最佳实践组合。

posted on 2026-08-19 14:32  luzhouxiaoshuai  阅读(7)  评论(0)    收藏  举报

导航