百韵网 >>  正文

flink1.9 JobGraph部署到Yarn

来源:www.baiyundou.net   日期:较早时间

flink将用户编写的程序转换为jobGraph进行提交。ProgramDeployer线程类负责将用户程序部署到集群中,它根据ExecutionContext是否包含ClusterId选择重新启动集群部署任务或者将任务运行在已有的集群中。同时,在部署时需要获取ClusterDescriptor,也就是集群相关的配置信息,flink根据启动的命令行来解析将任务部署在yarn集群还是standalone集群。当然如果我们不是通过执行flink脚本的当时提交任务,可以根据部署的方式手动构建ClusterDescriptor。我们的任务部署在yarn上,所以使用的是YarnClusterDescriptor。

创建ClusterDescriptor

集群启动入口

创建新的集群

Yarn应用部署

通过调用AbstractYarnClusterDescriptor#deployInternal方法来启动Flink应用程序。其中主要流程有:

Yarn启动AppMaster也就是启动Flink JobManager是最为核心的步骤,它主要包含以下步骤:

启动JM的命令行:

学习点:

上传到HDFS中的文件,红色表示序列化的JobGraph,local Resource中的key为job.graph。

AM运行时获取JobGraph
生产环境使用yarn per-job模式执行,也就是一个yarn应用只执行一个jobGraph,看下yarn per-job模式的执行流程。

jobGraph的执行是由Dispatcher发起的,在Dispatcher创建的时候会先从LocalResource中提取该JobGraph,把它传递给SubmittedJobGraphStore的子类SingleJobSubmittedJobGraphStore,当Dispatcher启动并成为Leader后会从SingleJobSubmittedJobGraphStore里面恢复JobGraph,执行调度。具体流程:



~

相关要点总结:
(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网