flink源码系列
文章平均质量分 93
AiryView
等待雪融的你
展开
-
Flink源码系列(JobMaster提交任务给TaskExecutor并执行)-第十二期
上一期指路:从第八期讲到的JobMaster的启动,直到后面第九期到第十一期都是基于下图的分支①,那么我们继续分析分支②,也就是说TaskExecutor向SlotManager注册slot后,SlotManager分配slot告诉TaskExecutor去提供slot给JobMaster,JobMaster就可以提交执行任务到TaskExecutor的slot中去执行了。1.一系列套娃般的跳转JobMaster#resetAndStartScheduler->JobMaster原创 2022-05-26 07:45:00 · 797 阅读 · 0 评论 -
Flink源码系列(slot在TaskExecutor、SlotManager、SlotPool之间的关系)-第十一期
上一期指路上一期讲到taskExecutor向resourceManager发起注册,这次接着上次分析的注册成功后回调TaskExecutor中的onRegistrationSuccess方法。1.TaskExecutor的内部类ResourceManagerRegistrationListener#onRegistrationSuccess->TaskExecutor#establishResourceManagerConnection private void establish原创 2022-05-19 07:48:20 · 652 阅读 · 0 评论 -
Flink源码系列(TaskExecutor向ResourceManager发起注册[flink内部,非yarn中rm])-第十期
上一期指路:承接上一期讲到YarnTaskExecutorRunner的main方法,我们继续往下分析。1.YarnTaskExecutorRunner#main->YarnTaskExecutorRunner#runTaskManagerSecurely->TaskManagerRunner#runTaskManagerSecurely public static void runTaskManagerSecurely(Configuration configuration)原创 2022-05-12 08:00:00 · 1159 阅读 · 0 评论 -
Flink源码系列(YarnTaskExecutorRunner启动)-第九期
上一期指路接着上一期讲到JobMaster的启动,其中又启动了slotPool,如下:那么接下来slotPool寻回rm并向其请求slot。1.StandaloneLeaderRetrievalService#start->JobMaster的内部类ResourceManagerLeaderListener#notifyLeaderAddress->JobMaster#notifyOfNewResourceManagerLeader private void notif原创 2022-05-09 07:45:00 · 1478 阅读 · 1 评论 -
Flink源码系列(ResourceManager启动、JobMaster启动)-第八期
上一期指路上上一期和上一期主要讲Flink内部的组件rm、jm、Dispatcher介绍,但其实rm和jm的启动还没有分析,只是在上上一期分析了rm的创建以及上一期分析的jm的创建,所以这一期主要是一个善后的内容,主要用于补充rm和jm的真正启动。从之前的我们分析到的这个函数,即DefaultDispatcherResourceManagerComponentFactory中的create开始1.DefaultDispatcherResourceManagerComponentFacto原创 2022-05-08 07:45:00 · 740 阅读 · 0 评论 -
Flink源码系列(创建JobMaster并生成ExecutionGraph)-第七期
上一期指路:上一期主要讲了flink内部的rm的创建,Dispatcher的创建与启动,之前也说过在Dispatcher的启动过程中会涉及JobMaster的创建与启动,那么这一期的主题是创建JobMaster并生成ExecutionGraph。承接上一期分析到Dispatcher的onStart函数1.Dispatcher#startRecoveredJobs->Dispatcher#runRecoveredJob->Dispatcher#runJob private原创 2022-05-07 07:45:00 · 656 阅读 · 0 评论 -
Flink源码系列(创建ResourceManager[Flink内部,非yarn中rm]、创建并启动Dispatcher)-第六期
上一期指路上一期已经分析到了执行YarnJobClusterEntrypoint中的main方法,我们深入其runClusterEntrypoint继续分析。原创 2022-05-05 07:45:00 · 841 阅读 · 0 评论 -
Flink源码系列(启动ApplicationMaster以及YarnJobClusterEntrypoint进程启动)-第五期
上一期指路上一期已经分析了作业图生成,这一期主要分析上传jar包和配置、封装参数以及启动命令并把应用提交给yarn集群中的rm,然后会在nm上启动ApplicationMaster以及YarnJobClusterEntrypoint。从上一期分析的这个图开始,生成作业图已经分析完了,接下来主要看部署集群1.YarnClusterDescriptor#deployJobCluster public ClusterClientProvider<ApplicationId>.原创 2022-05-03 07:45:00 · 1422 阅读 · 0 评论 -
Flink源码系列(生成JobGraph)-第四期
上一期指路我们上一期分析完了如下代码的getStreamGraph函数,这一期主要从execute起分析作业的生成。 public JobExecutionResult execute(String jobName) throws Exception { Preconditions.checkNotNull(jobName, "Streaming Job name should not be null."); return execute(getStreamGraph(jobName原创 2022-05-01 07:45:00 · 780 阅读 · 0 评论 -
Flink源码系列(生成StreamGraph)-第三期
上一期指路:上一期我们分析完了用户代码,其核心是把相关算子加入transformations中,这个对于生成流图很重要。我们在编写用户代码时,最后一步肯定会写env.execute这一步,如果不写的话,那么程序其实并没有真正意义上的运行。于是我们接着从execute函数开始进行源码分析1.StreamExecutionEnvironment#execute public JobExecutionResult execute(String jobName) throws Exception原创 2022-04-30 07:45:00 · 672 阅读 · 0 评论 -
Flink源码系列(执行用户代码)-第二期
上一期指路:第一期首先承接上一期分析到了执行用户编写的SocketWindowWordCount1.SocketWindowWordCount#main public static void main(String[] args) throws Exception { // the host and the port to connect to final String hostname; final int port; try { final ParameterT原创 2022-04-29 07:45:00 · 644 阅读 · 1 评论 -
Flink源码解析(从CliFrontend提交开始)-第一期
序言经过一段时间对于flink学习且画了一些源码流程相关的图,决定开一个flink源码分析的专栏,该专栏以flink on yarn的 Per-job模式为基础,基于flink1.12.0,以官方SocketWindowWordCount例子来分析一个任务从提交到运行的流程源码分析。那么话不多,直接开始吧。首先我们正常情况下,在该模式下的提交flink任务的脚本入下:flink run -t yarn-per-job -c org.apache.flink.streaming.example.原创 2022-04-27 16:31:56 · 3220 阅读 · 0 评论