Driver
- 在Driver中,有
Stream Context
作为Spark Streaming
的入口,Spark Streaming
的最终处理实际还是交给Spark Context
。 -
DStream Graph
处理DStream
的依赖关系。 -
Job调度器(Scheduler
)负责定时生成Job
,Job Scheduler
包含一些组件-
Job Generator
: 是真正具体负责定时生成Job -
Receiver Tracker
: 负责启动,管理各个Receiver
及管理各个Receiver
接收到的数据。
-
Worker
- 在Worker中一般会生成若干个
Executor
。接收器(Receiver)
运行在Executor
中,接收的数据通过块生成器(Block Generator)
生成块(Block)
。在每个批处理时间间隔(Batch Duration)
中都有从Driver
提交来的Job的业务逻辑在Executor
中运行。
无论是Block数据的生成还是Job的生成,都需要能无休止地周而复始地进行下去,Spark Streaming中设计了一个RecurringTimer
类来起到定时器的作用。Executor上的Block Generator
和Driver上的Job Generator
在启动时,都会启动自己的RecurringTimer
对象,以定时触发各自的周期性工作。