RDD在Spark中是如何运行的?

Spark的任务调度流程分为RDD Objects、DAGScheduler、TaskScheduler以及Worker四个部分。关于这四个部分的相关介绍具体如下: Python技术文章2021-06-17 |传智教育 |RDD运行流程,RDD在Spark中的运行流程
RDD在Spark中是如何运行的?

下面,通过一张图来学习一下RDD在Spark中运行流程,如图1所示。

RDD在Spark中是如何运行的?

图1 RDD在Spark中的运行流程

在图1中,,Spark的任务调度流程分为RDD Objects、DAGScheduler、TaskScheduler以及Worker四个部分。关于这四个部分的相关介绍具体如下:

(1)RDD Objects:当RDD对象创建后,SparkContext会根据RDD对象构建DAG有向无环图,然后将Task提交给DAGScheduler。
(2)DAGScheduler:将作业的DAG划分成不同的Stage,每个Stage都是TaskSet任务集合,并以TaskSet为单位提交给TaskScheduler。
(3)TaskScheduler:通过TaskSetManager管理Task,并通过集群中的资源管理器(Standalone模式下是Master,Yarn模式下是ResourceManager)把Task发给集群中Worker的Executor。若期间有某个Task失败,则TaskScheduler会重试;若TaskScheduler发现某个Task一直没有运行完成,则有可能在空闲的机器上启动同一个Task,哪个Task先完成就用哪个Task的结果。但是,无论Task是否成功,TaskScheduler都会向DAGScheduler汇报当前的状态,若某个Stage运行失败,则TaskScheduler会通知DAGScheduler重新提交Task。需要注意的是,一个TaskScheduler只能服务一个SparkContext对象。Worker:Spark集群中的Worker接收到Task后,把Task运行在Executor进程中,这个Task就相当于Executor中进程中的一个线程。一个进程中可以有多个线程在工作,从而可以处理多个数据分区(例如运行任务、读取或者存储数据)。

Python教程

pip命令下载安装第三方模块【Python技术文章】

2021-7-10 12:42:28

Python教程

如何Zookeeper安装部署HBase集群?分步骤讲解

2021-7-10 12:42:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索