Spark-streaming源码走读(一)

继续一下源码的走读啊, 最近看了点别的源代码,发现自己好像一个不会写代码的孩子一样。。。。总觉得自己差了一点什么,但是又说不上来, 只能继续努力了。

继续上一个部分,

Spark-streaming源码走读(一)_第1张图片
start方法

里面有个eventLoop, 估计是监听一堆事件的, command+B ,看下JobSchedulerEvent有什么类型

Event类型
Spark-streaming源码走读(一)_第2张图片
eventLoop内部

看到这里的第一反应是, 里面是用队列来做的,而且长度没限制, 当然也没法限制, 要是队列满了怎么办,是写到硬盘里吗,还是有别的方法?
看了一眼注释,

队列长度说明

扎心了,老铁。。。

Spark-streaming源码走读(一)_第3张图片
process逻辑

代码还是挺清楚的,

两个部件

什么listener的逻辑就不看了,里面太绕, 看着闹心,看下重要的两个,

Spark-streaming源码走读(一)_第4张图片
start

里面的receive方法

Spark-streaming源码走读(一)_第5张图片
receive方法

里面的逻辑就不细看了, 就看两点吧, 一, 有多少个inputstream就有多少个receiver, 二呢,所有的receiver都在相应的executor上。
后面receiver的内容明天继续。

你可能感兴趣的:(Spark-streaming源码走读(一))