阿里云
为了无法计算的价值
打开APP
阿里云APP内打开
学习中心> 分布式系统开发调度技术> 正文

分布式系统开发调度技术

6课时 |
4466人已学 |
免费
课程介绍

本章知识针对分步式系统中的调度技术进行阐述,比较Hadoop MR,Yarn等系统见的区别,并指出阿里Fuxi系统在任务调度和资源调度时的处理方法,并对未来发展进行展望。

讲师简介:陶阳宇,阿里巴巴高级专家,主要从事大型分布式系统和高并发系统的开发,在系统架构设计,性能优化等方面有丰富积累,参与研发了阿里云”飞天”分布式平台,支持5000节点大规模集群,主持研发了在线服务框架FuxiService、实时计算系统FuxiOnlinejob等多个线上产品,2015年带领团队在世界排序大赛SortBenchmark’2015中夺得冠军,打破两项世界纪录。曾在国际会议VLDB、CSDN等杂志发表过多篇技术文章,作为教师讲授清华大学大数据课程。

分布式调度系统现状

目录  

一. 分布式调度的两大任务

二. 分布式调度系统的比较

 

一.分布式调度的两大任务

分布式调度主要作用是使像使用台式机一样来使用云计算,台式机最重要的部件是处理器CPU,对云计算而言,分布式调度就是它的处理器,它能够将成千上万台硬件的运算能力汇合起来,提供可靠的云计算服务。

分布式调度最重要的两个任务是任务调度和资源调度。

  1. 任务调度

在任务调度方面,不同的业务部门在共享集群时,有大量的计算任务,这些任务如何进行切分?

如何将海量的数据进行分割,在不同的节点上进行运算,同时还有监控各个节点的运算状态。

  1. 资源调度

资源调度则是回到供应双方的供给方,分布式调度系统需要在不同的业务部门之间平衡资源的使用,从而使得每个部门之间的资源相对比较平衡,同时又需要支持优先级抢占。

二.分布式调度系统的比较

熟悉的分布式调度系统有Hadoop MR、YARN、Mesos以及Aliyun-Fuxi等等。

1. Hadoop MR

下图是经典的Hadoop MR架构图,当集群部署完后,集群中有一个单点系统称为Job Tracker,负责资源调度和任务调度,当用户通过客户端提交作业到Hadoop系统之后,Job Tracker进行资源的调度,然后将任务下发给相关的节点,每个节点上部署了一个task tracker,进行任务的调度和执行,这个架构是经典的主从架构,但也存在着一些缺陷:

1>单点问题所引入的规模扩展,最大 4000台机器,往更大的规模扩展存在瓶颈,因为每增加一台节点的时候,task tracker注册到Job Tracker需要的内存中加载一段内存,那当节点数变更多Job Tracker会受到所在物理机器的内存的上限限制。

2>容错性差 ,Job Tracker是单节点进程,若该节点发生crash,或者整个机器发生宕机,此时所有进行中之前运行的作业情况以及资源分配结果是无法恢复的。

  1. 不利于功能扩展,如当不同的业务部门使用Hadoop集群时,每个业务部门对资源的调度有不同的策略要求,如何在一个进程里做到支持不同的调度策略,同时还支持热拔插(热拔插:不停止进程的情况下,能够改变系统的调度行为。)在这一点Job Tracker难以符合业务要求。