Spark的调度

作业调度简介

设计者将资源进行不同粒度的抽象建模,然后将资源统一放入调度器,通过一定的算法进行调度,最终要达到高吞吐或者低访问延时的目的。

Spark在各种运行模式中各个角色实现的功能基本一致,只不过是在特定的资源管理器下使用略微不同的名称和调度机制。


Application调度

一个Application中包含多个Job,每个Job包含多个Stage,每个Stage包含多个Task,那么Application之间如何调度?多个Job之间如何调度?多个Stage之间如何调度?Task之间延时调度机制?

1.Application调度就是组由用户提交到SparK中的作业集合,通过一定的算法,对每个按一定次序分配集群中资源的过程。
例如:
FIFO模式,用户先提交的作业1优先分配需要的资源,之后提交的作业2再分配资源,依次类推。

Application的调度模式:
Standalone:FIFO模式
Mesos:粗粒度和细粒度模式
YARN:独占模式

Job调度

就是在Application内部的一组Job集合,在Application分配到的资源量下,通过一定的算法,对每个按一定次序分配Application中资源的过程。

例如:
FIFO模式,Job1优先分配需要的资源,之后提交的Job2再分配资源,依次类推。

TaskScheduler将任务分发到相应的节点执行。


Job的调度模式:

FIFO模式

默认情况下,Spark的调度以FIFO的方式调度Job的执行。给个Job被切分为多个Stage。Job1优先分配需要的资源,之后提交的Job2再分配资源,依次类推。如果第一个Job没有占用满所有的资源,则第二个Job还可以继续获取剩余资源,这样多个Job可以并行运行。


FAIR模式

在FAIR共享模式调试下,Spark在多个Job之间以轮询round robin方式给任务进行资源分配,所有的任务拥有大致相当的优先级来共享集群的资源。这就意味着当一个长任务正在执行时,短任务仍可以被分配到资源,提交并执行,并且获得不错的响应时间。这样就不用像以前一样需要等待长任务执行完才可以。这种调度模式适合多用户的场景。


Tasks延时调度

数据本地性:在分布式系统下,尽量避免数据在网络上传输。一个任务的执行,需要既有任务的jar包,同时还要有数据块。所有传输任务jar包即可。

Tasks延时调度机制:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值