美文网首页
2018-11-12 JobManager 的启动过程

2018-11-12 JobManager 的启动过程

作者: 北子萌 | 来源:发表于2018-11-12 19:28 被阅读0次

首先会进入prestart方法体,对提交的作业图jobgraph进行存储,调用接口类SubmittedJobGraphStore 中的方法,

提名一个类:CliFrontend,其中的run方法对于提交的程序进行打包,之后交给ClusterClient类进行提交jar包

run方法

之后还初始化一个ClusterClient类型的变量,对其赋值:

run方法2

通过上述的run方法中的executeProgram将job提价Manager,可以跟踪这个方法进入executeProgram里面,看到如下的客户端执行语句:


执行程序的结果进行返回

通过这个run方法,可以追踪到下图的run方法中,其中主要关注包含入口类的情况。该段方法就是为了根据是否为{@code setDetached(true)}或{@code setDetached(false)},以阻塞或分离模式从CliFrontend运行用户jar的通用方法。该方法返回值为run的一个同名方法,其中参数类型为:jobWithJars、并行度以及检查点SavepointSettings,继续跳转到该方法中,可以看到注释语句如下:

通过层层调用,可以看到run方法在flink客户端的集群上运行了用户的程序, 最后的run方法返回一个submitJob函数,将上述的Plan或者数据流图生成了一个job,


执行计划编译为job

submitJob是一个抽象方法,在分离模式下才有具体实现,具体实现如下:

@Override

protected JobSubmissionResult submitJob(JobGraph jobGraph, ClassLoader classLoader) throwsProgramInvocationException

        if(isDetached()) 

        {    

            returnsuper.runDetached(jobGraph, classLoader); 

        }

else{

            returnsuper.run(jobGraph, classLoader); 

        } 

}

作者:小C菜鸟

链接:https://www.jianshu.com/p/4a5017f20641

來源:简书

相关文章

网友评论

      本文标题:2018-11-12 JobManager 的启动过程

      本文链接:https://www.haomeiwen.com/subject/ecrqfqtx.html