hadoop中的调度器总结

hadoop中常用的调度器有三种:

1、Fifo:默认的调度器,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。

2、计算能力调度器Capacity schedular:支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,为了防止同一个作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源进行限定。调度时,首先按照以下策略选择一个合适队列:计算每个正在运行任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择队列中一个作业,按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。

         3、公平调度器Fair scheduler     同计算能力调度器类似,支持多队列多用户。每个队列的资源量可配置,同一队列中的作业公平共享队列中所有资源

  

实际上,Hadoop的调度器远不止以上三种,最近,出现了很多针对新型应用的Hadoop调度器。

(4)适用于异构集群的调度器LATE

现有的Hadoop调度器都是建立在同构集群的假设前提下,具体假设如下:

1)集群中各个节点的性能完全一样

2)对于reduce task,它的三个阶段:copy、sort和reduce,用时各占1/3

3)同一job的同类型的task是一批一批完成的,他们用时基本一样。

现有的Hadoop调度器存在较大缺陷,主要体现在探测落后任务的算法上:如果一个task的进度落后于同类型task进度的20%,则把该task当做落后任务(这种任务决定了job的完成时间,需尽量缩短它的执行时间),从而为它启动一个备份任务(speculative task)。如果集群异构的,对于同一个task,即使是在相同节点上的执行时间也会有较大差别,因而在异构集群中很容易产生大量的备份任务。

LATE(Longest Approximate Time to End)调度器从某种程度上解决了现有调度器的问题,它定义三个阈值:SpeculativeCap,系统中最大同时执行的speculative task数目(作者推荐值为总slot数的10%); SlowNodeThreshold(作者推荐值为25%):得分(分数计算方法见论文)低于该阈值的node(快节点)上不会启动speculative task;SlowTaskThreshold(作者推荐值为25%):当task进度低于同批同类task的平均进度的SlowTaskThreshold时,会为该task启动speculative task。它的调度策略是:当一个节点出现空闲资源且系统中总的备份任务数小于SpeculativeCap时,(1)如果该节点是慢节点(节点得分高于SlowNodeThreshold),则忽略这个请求。 (2)对当前正在运行的task按估算的剩余完成时间排序 (3)选择剩余完成时间最大且进度低于SlowTaskThreshold的task,为该task启动备份任务。

(5)适用于实时作业的调度器Deadline Scheduler和Constraint-based Scheduler

这种调度器主要用于有时间限制的作业(Deadline Job),即给作业一个deadline时间,让它在该时间内完成。实际上,这类调度器分为两种,软实时(允许作业有一定的超时)作业调度器和硬实时(作业必须严格按时完成)作业调度器。

Deadline Scheduler主要针对的是软实时作业,该调度器根据作业的运行进度和剩余时间动态调整作业获得的资源量,以便作业尽可能的在deadline时间内完成。

Constraint-based Scheduler(参考资料[6])主要针对的是硬实时作业,该调度器根据作业的deadline和当前系统中的实时作业运行情况,预测新提交的实时作业能不能在deadline时间内完成,如果不能,则将作业反馈给用户,让他重调整作业的deadline。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache DolphinScheduler是一个新一代分布式大数据工作任务调度系统,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill任务等操作。目前已经有像IBM、腾讯、美团、360等400多家公司生产上使用。 调度系统现在市面上的调度系统那么多,比如老牌的Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 为什么要选DolphinScheduler ? DolphinScheduler 的定位是大数据工作调度。通过把大数据和工作流做了重点标注. 从而可以知道DolphinScheduler的定位是针对于大数据体系。 DolphinScheduler是非常强大的大数据调度工具,有以下一些特点:1、通过拖拽以DAG 图的方式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态;2、支持丰富的任务类型;3、支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作;4、支持工作流全局参数及节点自定义参数设置;5、支持集群HA,通过 Zookeeper实现 Master 集群和 Worker 集群去心化;6、支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计;7、支持补数,并行或串行回填数据。课程会带大家构建DolphinScheduler大数据调度平台,实战讲解多种任务调度配置,会基于案例讲解DolphinScheduler使用,让大家在实战掌握DolphinScheduler。 DolphinScheduler 发展很快 很多公司调度都切换到了DolphinScheduler,掌握DolphinScheduler调度使用势在必行,抓住新技术机遇,为跳巢涨薪做好准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值