第126-134课:Spark Streaming源码经典解读

Spark Streaming源码经典解读

一:基于DStream的DStreamGraph源码内幕

1、DStream下transformation和action解密
2、DStreamGraph内幕源码解密

二:Spark Streaming生成RDD并执行Job源码内幕解密

1、DStream产生RDD的案例实战演示
2、DStream作为RDD模板的原理机制
3、常见的DStream生产RDD源码彻底解密

compute

三:JobScheduler工作内幕源码解密

1、JobScheduler、JobGenerator、ReceiverTracker
2、JobScheduer源码内幕
3、Spark Streaming Job深度思考和实验

JobGenerator生成作业,JobScheduler调度作业给Spark core。有RDD就有固定的数据源,因此需要BlockManager。使用ReceiverTracker来封装BlockManager

JobScheduler收到作业->JobScheduler启动作业->交给Spark Core->Spark Core把结果给JobScheduler 相当于堆栈调用

Spark core可不可以同时运行多个Job?可以,把每个Job在单独线程中启动。

sparkstreaming中的job 有形,假的不实际运行;spark core 无job,实际在运行。

Spark Streaming默认Job调度方式是FIFO的方式

四:JobGenerator工作内幕源码解密

1、JobGenerator启动源码内幕
2、JobGenerator工作源码内幕
3、JobGenerator中关于“半条”数据如何处理?

五:Receiver工作内幕源码解密

1、Receiver完整启动过程源码内幕
2、Receiver工作源码内幕

ReceiverTracker和Receiver是master和slave的关系,
Receiver的启动是启动了一个Spark core的job
好处一:确保Receiver一定可以启动
好处二:更平均,一般不在同一个机器启动

六:ReceiverTracker工作内幕源码解密

1、ReceiverTracker启动和工作机制源码内幕解密
2、Receiver、ReceiverSupervisor和ReceiverTracker通信内幕

ReceiverTracker在JobScheduler启动的时候启动的

ReceivedBlockTracker

BlockGenerator :
Generates batches of objects received by a
[[org.apache.spark.streaming.receiver.Receiver]] and puts them into appropriately
named blocks at regular intervals. This class starts two threads,
one to periodically start a new batch and prepare the previous batch of as a block,
the other to push the blocks into the block manager.

BlockGenerator,一个线程要不断的从Receiver中接收数据,一个线程按照固定的时间间隔将数据转化成Block,一个线程要将队列中的Block发送给BlockManager

七:Executor容错工作内幕源码解密

1、Spark Streaming Executor高可用容错的几种方式
2、Spark Streaming Executor高可用容错源码解析

进程本身的容错叫HA
Slave级别容错的目标:保证数据安全

备份(BlockManager的备份或使用WAL)、重放(从前一步再读一遍,如Kafka)

RDD和具体数据之间适配层。
RDD本身感受不到数据变化

八:Driver容错工作内幕源码解密

1、数据的容错
2、驱动的容错

WAL相当于一个序列化和反序列化的过程。数据会写入到WAL中,反之如果有错误会从WAL读取

WAL采用了Rolling的方式,checkpoint相对简单一些

job生成和提交会进行checkpoint

Spark Streaming总结

1、Spark Streaming “魔镜秘境”
2、发展中的Spark Streaming

你可能感兴趣的:(Spark,Streaming,spark)