当前位置: 首页 > 工具软件 > Yarn VM > 使用案例 >

flink on yarn 模式传递vm option参数

许博
2023-12-01

最近在使用flink application 模式进行参数传递,flink正常提供的参数可以使用-D进行传递
官方地址
flink配置选项

./bin/flink  run-application -t yarn-application \
-c com.atta.xt.task.FlinkMappingField \
-Djobmanager.memory.process.size=2048m \
-Dtaskmanager.memory.process.size=3072m \
-Dtaskmanager.numberOfTaskSlots=4 \
-Dparallelism.default=8 \
-Dyarn.application.name="FlinkMappingField" \
-Dyarn.application.queue=flink \
-Dstate.backend=rocksdb \
-Dstate.backend.incrementa=true \
-Dstate.checkpoints.dir=hdfs://...../gao/ck/FlinkMappingField \
-Dstate.savepoints.dir=hdfs://...../gao/ck/FlinkMappingField \
-Dexecution.checkpointing.tolerable-failed-checkpoints=5 \
-Dexecution.checkpointing.externalized-checkpoint-retention=RETAIN_ON_CANCELLATION \
-Drestart-strategy=fixed-delay \
-Drestart-strategy.fixed-delay.attempts=15 \
-Drestart-strategy.fixed-delay.delay=30s \
/root/*.jar

在这时候你运行会发现走flink cli时候你如果将你的普通的vm参数使用-Dhost=9999这样子进行传递是没有解析到的,在走flink源码时候底层是equals匹配的
解决方法
放在jar包后插入 看下列命令道最后一行,这时候插入是作为flink任务的main的args的参数进行传递 当作字符串数组取出然后进行使用即可

./bin/flink  run-application -t yarn-application \
-c com.atta.xt.task.FlinkMappingField \
-Djobmanager.memory.process.size=2048m \
-Dtaskmanager.memory.process.size=3072m \
-Dtaskmanager.numberOfTaskSlots=4 \
-Dparallelism.default=8 \
-Dyarn.application.name="FlinkMappingField" \
-Dyarn.application.queue=flink \
-Dstate.backend=rocksdb \
-Dstate.backend.incrementa=true \
-Dstate.checkpoints.dir=hdfs://...../gao/ck/FlinkField \
-Dstate.savepoints.dir=hdfs://...../gao/ck/FlinkField \
-Dexecution.checkpointing.tolerable-failed-checkpoints=5 \
-Dexecution.checkpointing.externalized-checkpoint-retention=RETAIN_ON_CANCELLATION \
-Drestart-strategy=fixed-delay \
-Drestart-strategy.fixed-delay.attempts=15 \
-Drestart-strategy.fixed-delay.delay=30s \
/root/*.jar localhost 9999 #在这里进行传递
 类似资料: