spark streaming原理

Spark Streaming 是基于spark的流式批处理引擎,其基本原理是把输入数据以某一时间间隔批量的处理,当批处理间隔缩短到秒级时,即可以用于处理实时数据流。spa

本节描述了Spark Streaming做业的执行流程。线程

图1 Spark Streaming做业的执行流程blog

具体流程:ci

  1. 客户端提交做业后启动 Driver ,Driver是 spark做业的Master
  2. 每一个做业包含多个Executor,每一个Executor以线程的方式运行task,Spark Streaming至少包含一个 receiver task
  3. Receiver 接收数据后生成Block,并把 BlockId 汇报给Driver,而后备份到另一个Executor上。
  4. ReceiverTracker 维护Reciver汇报的BlockId。
  5. Driver定时启动 JobGenerator ,根据Dstream的关系生成逻辑RDD,而后建立Jobset,交给JobScheduler。
  6. JobScheduler 负责调度Jobset,交给DAGScheduler,DAGScheduler根据逻辑RDD,生成相应的Stages,每一个stage包含一到多个task。
  7. TaskScheduler 负责把task调度到Executor上,并维护task的运行状态。
  8. 当tasks,stages,jobset完成后,单个batch才算完成。

版权声明:本文为博主原创文章,未经博主容许不得转载。spark

相关文章
相关标签/搜索