一、yarn-session模式
1.1 先启动yarn session
bin/yarn-session.sh \
-s 8 \
-jm 4g \
-tm 16g \
-nm yarn-session-flink \
-d
参数解释
参数 | 意义 |
---|---|
-jm 1024 | 表示jobmanager 1024M内存 |
-tm 1024 | 表示taskmanager 1024M内存 |
-s 8 | 每一个TaskManager上有8个slots |
-d | 任务后台运行 |
-nm,–name | 设置YARN上应用名字 |
-D<property=value> | 动态属性 ,类似于-Dparallelism.default=3 |
-q,–query | 显示可用的YARN资源(内存,内核) |
-qu,–queue | 指定YARN队列 |
-t,–ship | 指定YARN队列 |
-nl,–nodeLabel | 为YARN应用程序指定YARN节点标签 |
-z,–Zookeeper Namespace | 命名空间,用于创建高可用模式下的Zookeeper子路径 |
-j,–jar | Flink jar文件的路径 |
1.2 将任务提交到创建好的yarn session上运行
flink run -t yarn-session -Dyarn.application.id=application_1650018331890_0001 -c org.apache.flink.examples.java.wordcount.WordCount examples/batch/WordCount.jar
二、yarn-per-job
提交命令
./flink run \
-m yarn-cluster \
-yjm 1024 \
-ytm 1024 \
-ynm wordcount \
-c org.apache.flink.examples.java.wordcount.WordCount \
-yj examples/batch/WordCount.jar
参数解释
参数 | 意义 |
---|---|
-m | 执行模式为yarn-cluster。也可以指定要连接的JobManager的地址,使用这个标志可以连接到配置中指定的不同的JobManager,注意:只有高可用性配置为NONE时才会考虑此选项。 |
-yjm | 指定JobManager所在的Container内存。单位:MB |
-ytm | 每一个TaskManager Container的内存,单位MB。 |
-ys | 每一个TaskManager中slots的数量。 |
-ynm | YARN中application的名称。 |
-c | 指定Job对应的jar包中主函数所在类名。 |
-yj,–yarnjar<arg> | jar包位置 |
-yt,–yarnship | 传输指定目录下的文件(t用于传输) |
-yqu,–yarnqueue<arg> | 指定yarn队列 |
-yD <property=value> | 自定义参数 |
-yid,–yarnapplicationId <arg> | 指定yarnid执行 |
-yq,–yarnquery | 显示可用的YARN资源(内存,核心) |
-d,–detached | 后台执行 |
三、新版本命令变动
./bin/flink run \
# 指定yarn的Per-job模式,-t等价于-Dexecution.target
-t yarn-per-job \
# yarn应用的自定义name
-Dyarn.application.name=wordcount \
# 未指定并行度时的默认并行度值, 该值默认为1
-Dparallelism.default=3 \
# JobManager进程的内存
-Djobmanager.memory.process.size=2048mb \
# TaskManager进程的内存
-Dtaskmanager.memory.process.size=2048mb \
# 每个TaskManager的slot数目, 最佳配比是和vCores保持一致
-Dtaskmanager.numberOfTaskSlots=2 \
# 防止日志中文乱码
-Denv.java.opts="-Dfile.encoding=UTF-8" \
# 支持火焰图, Flink1.13新特性, 默认为false, 开发和测试环境可以开启, 生产环境建议关闭
-Drest.flamegraph.enabled=true \
# 入口类
-c xxxx.MainClass \
# 提交Job的jar包
xxxx.jar