![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大厂之路
文章平均质量分 92
AiryView
等待雪融的你
展开
-
Flink源码系列(执行用户代码)-第二期
上一期指路: 第一期 首先承接上一期分析到了执行用户编写的SocketWindowWordCount 1.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 · 612 阅读 · 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 · 3170 阅读 · 0 评论 -
Spark3.0.3-Master的启动流程源码分析
Master 对于Master,其启动脚本就是通过java mainClass的方式调用main方法启动Master的java进程。 自然调用的就是org.apache.spark.deploy.Master的main方法。 于是就从org.apache.spark.deploy.Master中的main方法开始看起 1.Master#main new SparkConf Spark应用程序的配置,将spark的各种参数设置为键值对 ; new MasterArguments(argSt原创 2022-04-10 17:03:28 · 1502 阅读 · 1 评论 -
Flink源码系列(生成StreamGraph)-第三期
上一期指路: 上一期我们分析完了用户代码,其核心是把相关算子加入transformations中,这个对于生成流图很重要。我们在编写用户代码时,最后一步肯定会写env.execute这一步,如果不写的话,那么程序其实并没有真正意义上的运行。于是我们接着从execute函数开始进行源码分析 1.StreamExecutionEnvironment#execute public JobExecutionResult execute(String jobName) throws Exception原创 2022-04-30 07:45:00 · 642 阅读 · 0 评论 -
Spark3.0.3-Worker的启动流程源码分析
Worker 对于Master,其启动脚本就是通过java mainClass的方式调用main方法启动Worker的java进程。 自然调用的就是org.apache.spark.deploy.worker.Worker的main方法。 于是就从org.apache.spark.deploy.worker.Worker中的main方法开始看起。 1.Worker#main ...原创 2022-04-11 09:43:43 · 767 阅读 · 0 评论 -
基于ReentrantLock的案例来学习AQS的源码
1.什么是AQS? AbstractQueuedSynchronizer:抽象的队列同步器。 2.AQS有多重要? AQS用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石, 通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量(state)表示持有锁的状态。 3.AQS用来干嘛? 加锁->阻塞->需要排队->使用某种形式的队列管理排队->使用CLH队列的变体实现,将暂时获取不到锁的线程加入到队列中->这个队列就是AQS的抽象表现原创 2021-10-04 21:45:08 · 150 阅读 · 0 评论