FlinkOnYarn源码分析

本文深入分析了Flink对接Yarn的per-job模式下的应用提交过程。从客户端的`flink run`命令开始,详细阐述了从PackagedProgram到StreamExecutionEnvironment的执行,再到YarnJobClusterEntrypoint的启动,包括Dispatcher、ResourceManager和JobManagerRunner的启动流程,以及Task Executor如何启动和申请资源。整个过程揭示了Flink在Yarn上作业调度、执行和协作的机制。
摘要由CSDN通过智能技术生成

收录于话题

#大数据17

#Flink2

Flink可以对接第三方资源进行弹性伸缩,常见的有Yarn、K8S。Flink对接Yarn有两种模式,分别是session模式和per-job模式。由于生产环境多用per-job模式,因此本文主要分析对接Yarn时per-Job模式的提交过程。

Flink提交application语句:./flink run -m yarn-cluster ./flinkApp.jar

客户端提交命令过程分析

该语句最终有入口类org.apache.flink.client.cli.CliFrontend处理,

图片

通过run()函数触发整个流程,最终是调用PackagedProgram的invokeInteractiveModeForExecution() 

图片

从callMainMethod(mainClass,args) ,可以了解这是调用里我们程序的main函数。这里并不是我们程序直接提交的地方,而是我们业务代码程序进行编译的地方。我们的业务代码通过StreamExecutionEnvironment.execute()开始编译,首先会编译成Streamgraph,然后通过executeAsync(streamgraph)-》AbstractJobClusterExecutor.execute()进行异步

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值