spark-运行原理剖析

                                                            spark-运行原理剖析

说明:spark运行一个job大致过程如下

1) 通过sparksubmit(shell)提交应用程序application

2) 在应用提交的机器上创建driverActior进程,创建driver

3) Driver进程读取代码,首先创建sparkContext上下文

4) SparkContext上下文包括两个重要组件:            

        TaskScheduler:

   (a)      与master通信,注册应用

   (b)     接收executro的反向注册,让driver获取到executor列表

  (c)      接收DAGScheduler分解的task,将task按批次发放到executor上进行执行

扫描二维码关注公众号,回复: 9996405 查看本文章

 DAGScheduler:

(a)      解析代码,每执行到一个action,就会产生一个job,job传递给DAGSchedule

(b)     将job 分解为多个stage(stage根据遇到聚合如reduce算子进行划分),每个stage生成一个taskset集合

(c)      将taskset集合发送给TaskScheduler进行分发到executor上执行

5) Master注册(注册机制见后面的master注册机制原理)

 Maste注册包括下面几个:

(a)      应用程序的注册

(b)     Driver的注册

(c)      Work节点注册

6) Master接收到application 申请后,通过资源调度算法,为应用分配资源

work节点启动executor进程,executor回反向注册到driver的taskScheduler上。

Executor每接收到一个task,就会重线程池中,获取一个线程,执行task任务

运行图如下:

   

猜你喜欢

转载自www.cnblogs.com/javapand/p/12532290.html