主页 > 新闻资讯 > Spark的基本原理:Spark数据处理任务调度原理

Spark的基本原理:Spark数据处理任务调度原理

作者:张老师 浏览次数: 2020-02-19 18:28
基于内存进行分布式计算,Spark框架在大规模数据处理任务上,表现出了近实时的数据处理能力,面对越来越多的实时数据处理需求场景,Spark也就成为了企业大数据平台的主流选择之一。今天我们就从Spark的基本原理出发,也就是数据处理任务调度,来看看Spark是如何实现性能提升的。

Spark的基本原理

Spark基于RDD建立的弹性分布式数据集,配合DAG任务调度程序,将整个集群的性能发挥到最佳。Spark集群分为Master节点和Worker节点,Master节点上常驻Master守护进程,负责管理全部的Worker节点。Worker节点上常驻Worker守护进程,负责与Master节点通信并管理Executors。

当数据处理请求发出时,Driver就开始接入流程。Driver为用户编写的Spark应用程序所运行的进程。Driver程序可以运行在Master节点上,也可运行在Worker节点上,还可运行在非Spark集群的节点上。

Spark框架的计算任务,基于内存进行分布式并行计算,内存有限,要实现更合理的任务分配,这个时候就需要任务调度来进行调节。

Spark中主要有两种调度器:DAG Scheduler和Task Scheduler,DAG Scheduler主要是把一个Job根据RDD间的依赖关系,划分为多个Stage,对于划分后的每个Stage都抽象为一个由多个Task组成的任务集(TaskSet),并交给Task Scheduler来进行进一步的任务调度。Task Scheduler负责对每个具体的Task进行调度。

在Spark数据计算任务运行时,DAGScheduler将一个TaskSet交给Task Scheduler后,Task Scheduler会为每个TaskSet进行任务调度,Spark中的任务调度分为两种:FIFO(先进先出)调度和FAIR(公平调度)调度。

FIFO调度:即谁先提交谁先执行,后面的任务需要等待前面的任务执行。这是Spark的默认的调度模式。

FAIR调度:支持将作业分组到池中,并为每个池设置不同的调度权重,任务可以按照权重来决定执行顺序。

以上就是关于Spark的基本原理,涉及到数据处理任务调度的原理分享了。Spark在计算性能上的提升,一方面来自于RDD数据结构,另一方面则来自于合理的任务调度分配,因此这部分的原理也是值得大家去深入了解的。成都加米谷大数据,大数据知识分享,大数据培训班学习,大数据开发本月即将开班,撩客服可获学习资料+课程大纲!
热点排行
推荐文章
立即申请>>