Spark的调度





Spark的调度 : 


Spark有多种运行模式,例如:Local/Standalone/YARN/Mesos






Application调度 : 


Application调度就是组由用户提交到Spark中的作业的集合,通过一定的算法,对每个按一定次序分配集群中资源的过程。


例如: FIFO模式,用户先提交的作业1优先分配需要的资源,之后提交的作业2再分配资源,以此类推。






Job调度 : 


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


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


默认情况下,Spark的调度器以FIFO的方式调度Job的执行。每个JOb被切分为多个Stage。第一个Job优先获取所有可用的资源,接下来第二个JOb再进行剩余资源获取。这样依此类推,如果第一个Job并没有占用所有的资源,则第二个Job还可以继续获取剩余资源,这样多个Job可以并行运行。




FAIR模式 :


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






Tasks延时调度 : 


数据本地行 : 尽量的避免数据在网络上的传输。


Tasks延时调度机制:




拥有数据的节点当前正被其他的task占用,如果预测当前节点结束当前任务的时间要比移动数据的时间还要少,那么调度很等待,直到当前节点可用。否则移动数据到资源充足节点,分配任务执行。






----------------------------或者说-----------------------


DAG Scheduler调度 : 最高层次的调度对象是stage


为每个job绘出DAG,绘出DAG并查找最短路径。(非递归层次遍历)


把每个job分割成不同的阶段stage。并生成了stage的有序执行序列。stage内是taskset


把task交给task scheduler。


waitingstages父stage未执行完的stage。


runningstages正在运行的stage


faildstages执行失败的stage






Task scheduler调度 : 对象是task


为收到的不同taskset创建一个taskset manager,taskset manager实际负责taskset中task的调度。


taskset manager通过taskset与底层物理节点通信。




fifo和fair调度模式。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值