1. 两种模式
1. 共用一个 yarn-session
在 YARN 中初始化一个 Flink 集群,初始化好资源,提交的任务都在这个集群执行,共用集群的资源。
这个 Flink集群常驻在 YARN 集群中,要关闭可以手动停止。
2. 每个Job启动一个集群
每次提交都会创建一个新的 Flink 集群,Job之间是互相独立的。任务执行完之后集群会注销。
2. yarn-session 模式
yarn-session.sh + flink run
1. 启动常驻的 Flink 集群
yarn-session.sh -n 3 -s 5 -jm 1024 -tm 4096 -d
2. 查看集群
yarn application -list
yarn-session.sh -id application_id
3. 提交任务
flink run $FLINK_HOME/examples/batch/WordCount.jar \
-output hdfs:///wordcount-result.txt
4. 关闭集群
yarn application -kill Application-Id
5. 参数
yarn-session参数
参数 | 说明 |
-n | 分配多少个Container (taskmanager数量) ,必选 |
-s | 每个 TaskManager 中 Slot 的数量 |
-j | Flink jar 文件的路径 |
-jm | JobManager 容器的内存(默认值:MB) |
-tm | 每个 TaskManager 容器的内存(默认值:MB) |
-nm | 在 YARN 上为应用程序设置自定义名称 |
-d | 以分离模式运行,后台执行 |
-D | 以配置文件中的设置加载资源 |
-id | 指定yarn的任务ID |
-nl | 为YARN应用程序指定YARN节点标签 |
-q | 显示可用的YARN资源(内存,内核) |
-qu | 指定YARN队列 |
-st | 以流模式启动Flink |
-z | 命名空间,用于为HA模式创建Zookeeper子路径 |
3. yarn-cluster 模式
flink run -m yarn-cluster
1. 启动集群,提交任务
flink run -m yarn-cluster $FLINK_HOME/examples/batch/WordCount.jar
flink run -m yarn-cluster -yn 3 -yjm 1024 -ytm 1024 $FLINK_HOME/examples/batch/WordCount.jar
2. 参数
yarn-cluster 参数
参数 | 说明 |
-m | 指定资源调度系统 |
-yn | container容器个数,TaskManager 的数量 |
-ys | 每个 TaskManager 中 Slot 的数量 |
-yjm | JobManager 容器的内存(默认值:MB) |
-ytm | 每个 TaskManager 容器的内存(默认值:MB) |
-ynm | 在 YARN 上为应用程序设置自定义名称 |
-d | 以分离模式运行,后台执行 |
-yD | 以配置文件中的设置加载资源 |
-yid | 指定yarn的任务ID |
-ynl | 为 YARN 应用程序指定 YARN 节点标签 |
-yq | 显示可用的YARN资源(内存,内核) |
-yqu | 指定YARN队列 |
-yst | 以流模式启动Flink |
-z | 命名空间,用于为高可用性模式创建Zookeeper子路径 |
-p | 指定运行并行度,即 slot 数量,可覆盖文件中的配置 |
-c | 指定入口类 |