Flink 提交任务 Yarn 指令实现流程

1. 概述

在使用 Flink 进行大数据分析和处理时,我们通常需要将任务提交到 Yarn 集群上进行执行。本文将介绍如何使用命令行方式提交 Flink 任务到 Yarn 集群,并详细说明每一步需要做什么以及相应的代码。

2. 提交任务流程

下面是提交 Flink 任务到 Yarn 集群的整个流程,我们将使用表格展示每一步的具体内容:

步骤 描述
1 打包 Flink 应用程序
2 配置 Flink 任务提交到 Yarn 的相关参数
3 使用 Yarn 提交 Flink 任务

3. 每一步的操作和代码

3.1 打包 Flink 应用程序

在提交 Flink 任务之前,我们需要将应用程序打包成可执行的 Jar 包。以下是一些常用的打包命令:

mvn clean package
sbt clean assembly
gradle clean shadowJar

注意:根据你使用的构建工具,可以选择适合你的命令。

3.2 配置 Flink 任务提交到 Yarn 的相关参数

在提交任务之前,我们需要设置一些 Yarn 相关的参数,这些参数将告诉 Flink 如何将任务提交到 Yarn 上。以下是一个示例配置文件 flink-conf.yaml 的内容:

jobmanager.rpc.address: localhost
jobmanager.rpc.port: 6123
jobmanager.heap.size: 1024m
taskmanager.heap.size: 2048m
containerized.heap-cutoff-ratio: 0.75
yarn.application.name: MyFlinkJob
yarn.container-start-command-template: /opt/flink/bin/yarn-job.sh
execution.target: yarn-per-job

3.3 使用 Yarn 提交 Flink 任务

现在我们可以使用 Yarn 提交 Flink 任务了。以下是一个示例命令:

./bin/flink run -m yarn-cluster -yjm 1024 -ytm 2048 -yn 2 -ys 2 -c com.example.MyFlinkJob /path/to/flink-job.jar

这个命令的含义是:

  • ./bin/flink run:执行 Flink 命令行工具,用于提交任务。
  • -m yarn-cluster:指定任务运行在 Yarn 集群上。
  • -yjm 1024:指定 JobManager 的内存大小为 1024MB。
  • -ytm 2048:指定 TaskManager 的内存大小为 2048MB。
  • -yn 2:指定任务运行所需的 Yarn 容器数。
  • -ys 2:指定任务运行所需的 TaskManager 描述符数。
  • -c com.example.MyFlinkJob:指定任务的入口类。
  • /path/to/flink-job.jar:指定任务的 Jar 包路径。

4. 甘特图

下面是提交 Flink 任务到 Yarn 集群的甘特图:

gantt
dateFormat  YYYY-MM-DD
title Flink 提交任务 Yarn 指令实现流程
section 打包应用程序
打包应用程序 : done, 2021-01-01, 1d
section 配置参数
配置参数 : done, 2021-01-02, 1d
section 提交任务
提交任务 : done, 2021-01-03, 1d

5. 关系图

下面是提交 Flink 任务到 Yarn 集群的关系图:

erDiagram
          Flink 任务提交到 Yarn 的相关参数 }|..| Flink 任务提交
          Flink 任务提交 |..| 打包 Flink 应用程序

6. 总结

通过本文的介绍,你已经学会了如何使用命令行方式提交 Flink 任务到 Yarn 集群。首先需要将应用程序打包成可执行的 Jar 包,然后配置相关参数,最后使用 Yarn 提交任务。希望这篇文章对你有所帮助!