TDW计算引擎解析——Scheduler

腾讯分布式数据仓库(Tencent distributed Data Warehouse, 简称TDW)基于开源软件Hadoop和Hive进行构建,并且根据公司数据量大、计算复杂等特定情况进行了大量优化和改造,目前单集群最大规模达到5600台,每日作业数达到100多万,已经成为公司最大的离线数据处理平台。为了满足用户更加多样的计算需求,TDW也在向实时化方向发展,为用户提供更加高效、稳定、丰富的服务。

目前TDW计算引擎包括两部分:一个是偏离线的MapReduce,一个是偏实时的Spark,两者内部都包含了一个重要的部件——Scheduler。本文是TDW计算引擎解析的系列文章之二,对scheduler过程进行解析,并对两个计算引擎的scheduler过程进行比较,对后续的优化方向进行思考和探索,期待经过我们不断的努力,TDW计算引擎运行地更好。

Scheduler介绍

MapReduce的Scheduler介绍

请求类型

一个作业一般有3种任务类型需要请求资源执行:jobtracker、map和reduce(jobtracker在调度层面也可以称为一种任务),每种任务类型需要的资源也不同,一个任务会被调度到一个节点上执行:

  • jobtracker需要的资源:1个jobtracker对应1个cpu、50M网络带宽、10G磁盘空间、根据map数和reduce数计算出内存需求量;

  • map需要的资源:1个map对应1个cpu、10M网络带宽、10G磁盘空间、根据参数设置内存需求量;

  • reduce需要的资源:1个reduce对应1个cpu、50M网络带宽、10G磁盘空间、根据参数设置内存需求量;

请求主体

任务资源请求的主体叫session,session和job对应起来,session向ClusterManager发起资源请求,ClusterManager也针对session记录有多少请求量和下发量。整个集群的管理者ClusterManager负责任务的调度。客户端先向ClusterManager发起一个jobtracker的资源请求,请求成功之后会在相应的节点上启动jobtracker服务,jobtracker再向ClusterManager发起map和reduce任务的资源请求,比如有10个map、2个reduce,则会向ClusterManager发起10个map和2个reduce任务的调度请求,请求成功之后,jobtracker向相应的节点提交启动任务的命令,节点启动任务执行。

多租户的管理

集群上有很多用户共享使用,都是通过session来请求资源,为了在多租户环境下追求相对公平,ClusterManager对请求采用层级管理模式:物以类聚。某一些session进入某个pool受到这个pool的制约,某些pool进入poolgroup,受到这个poolgroup的制约。Session属于哪个pool哪个poolgroup是怎么知道的呢?Session在向ClusterManager注册的时候就把自身的身份信息带过来了,ClusterManager按照这个身份信息把session加入到相应的pool和poolgroup。

公平调度

上面说了ClusterManager对这些请求是追求相对公平,什么是相对公平,就是在有比较的情况下顾及到大家的感受,在有比较的情况下让大家都爽,但是这些请求相互之间还是有轻重缓急。ClusterManager比较不是凭空的,是依据这些请求的规格。Pool和poolgroup的排场和规格采用一些参数来衡量:优先级、最小值、最大值、权重、是否可被preempt,session的规格采用一些参数来衡量:优先级、是否可被preempt。ClusterManager依据这些规格来给他们排座次,排第一的就被第一个调度。

上述调度模式叫公平调度,不会让某个资源池饿死也不会让某个资源池独享,追求多租户相对公平地共享集群资源。

独立并发的调度

ClusterManager对jobtracker、map和reduce三种类型任务进行独立并发地调度,每种类型对应一个调度线程。

调度过程

调度线程不断循环往复地进行着调度,每一轮都进行着三部曲操作:快照、调度和preempt。

快照

每次调度之前都对当前的请求做个快照,调度只对这个快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值