子任务三:Flink on Yarn部署 软件安装 复制Flink安装包到Master,解压到 /opt/module 。 配置环境变量,验证 flink --version 。 提交作业到Yarn 启动Hadoop集群,确保YARN运行。 使用命令提交Flink作业:flink run -m yarn-cluster /opt/module/flink/examples/batch/WordCount.jar 监控YARN Web UI(默认8088端口)查看作业状态。 验证结果 查看作业日志最后10行,确认输出结果正确(如单词计数结果)。
时间: 2025-08-26 21:14:14 AIGC 浏览: 25
<think>好的,用户想了解如何在YARN上部署Flink,包括安装、环境配置、作业提交和验证结果。首先我需要回忆之前提供的引用内容,看看里面有没有相关的步骤。
引用[2]提到了需要Hadoop版本至少2.2以上,并且安装HDFS服务。环境变量配置方面,需要设置HADOOP_CONF_DIR指向Hadoop的配置目录,比如/etc/hadoop/conf。另外,Flink 1.9.3以后的版本不需要flink-shaded-hadoop的jar包,这一点需要注意。安装步骤包括下载预捆绑Hadoop的Flink包,修改flink-conf.yaml配置文件,然后启动集群。验证部分是通过运行yarn-session.sh来启动会话,并提交作业。
引用[1]提到关闭yarn-session的命令,可能是在验证结束后的清理步骤。引用[3]则强调了Flink on YARN的基础架构和启动流程,可能涉及资源调度模型,需要简要说明流程。
用户的需求可能分为几个步骤:安装前的准备、环境配置、部署启动、作业提交和结果验证。需要确保每个步骤清晰,并且给出具体的命令和配置文件修改示例。同时,用户可能关心常见问题,比如依赖包是否需要,如何检查YARN资源等。需要参考引用中的信息,整合成一个结构化的回答,分步骤说明,并确保命令正确,路径准确。还要注意中文表达,避免技术术语错误,比如正确使用“YARN集群”而不是“Yarn集群”等。最后,生成的相关问题要围绕部署过程中可能遇到的难点或扩展知识,比如高可用配置、日志查看、资源优化等。</think>### Flink on YARN 部署全流程指南
---
#### **一、部署前准备**
1. **环境要求**
- Hadoop 集群版本 ≥ 2.2,且已安装 HDFS 服务[^2]
- 确保 YARN 资源管理正常运行(可通过 `yarn node -list` 验证)
- 从 [Apache Flink 官网](https://flink.apache.org/downloads/)下载与 Hadoop 版本匹配的 Flink 安装包(例如 `flink-1.17.2-bin-scala_2.12.tgz`)
2. **依赖配置**
- 设置 Hadoop 环境变量(关键步骤):
```bash
export HADOOP_CONF_DIR=/etc/hadoop/conf # 指向 Hadoop 配置文件目录[^2]
```
---
#### **二、安装与配置**
1. **解压安装包**
```bash
tar -zxvf flink-1.17.2-bin-scala_2.12.tgz -C /opt/
```
2. **修改配置文件**
- 编辑 `conf/flink-conf.yaml`,添加以下配置:
```yaml
jobmanager.rpc.address: localhost
taskmanager.numberOfTaskSlots: 2 # 根据集群资源调整
```
3. **验证 Hadoop 对接**
- 无需额外添加 `flink-shaded-hadoop` 依赖(Flink 1.8+ 已集成)[^2]
---
#### **三、启动 Flink on YARN**
1. **启动 YARN Session**
```bash
./bin/yarn-session.sh -d -s 2 -jm 1024m -tm 2048m -nm FlinkTestSession
```
- `-d`: 后台运行
- `-s`: 每个 TaskManager 的 Slot 数量
- `-jm/-tm`: JobManager/TaskManager 内存分配
2. **验证 Session 状态**
- 通过 YARN Web UI 查看 ApplicationMaster 状态(默认地址:`http://<ResourceManager>:8088`)
- 或使用命令行:
```bash
yarn application -list # 获取 Application ID[^1]
```
---
#### **四、提交 Flink 作业**
1. **提交 Jar 包作业**
```bash
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 2048 \
/path/to/your-flink-job.jar --input hdfs:///data.txt --output hdfs:///result
```
- `-yn`: TaskManager 数量
- `-yjm/-ytm`: JobManager/TaskManager 内存
2. **流式作业提交(示例)**
```bash
./bin/flink run -d -c com.example.StreamingJob \
-p 4 /path/to/streaming-job.jar
```
---
#### **五、验证运行结果**
1. **日志查看**
- 通过 Flink Web UI(默认端口 8081)查看作业状态
- 从 YARN ApplicationMaster 日志定位错误:
```bash
yarn logs -applicationId <Your_Application_ID> > flink.log
```
2. **结果检查**
- 若作业输出到 HDFS:
```bash
hdfs dfs -cat /result/*
```
- 若输出到 Kafka 或数据库,需通过对应客户端工具验证
---
#### **六、关闭资源**
1. **终止 YARN Session**
```bash
yarn application -kill <Application_ID> # 示例:application_1688448920799_0001[^1]
```
---
### 常见问题与优化
- **性能优化**:调整 `taskmanager.memory.process.size` 和 `parallelism.default` 参数匹配集群资源
- **高可用配置**:启用 ZooKeeper 实现 JobManager 高可用(需修改 `high-availability` 配置项)
- **版本升级**:参考 [Flink 官方升级指南](https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/ops/upgrading/)[^2]
---
阅读全文
相关推荐



















