Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

6,971

统一资源调度

  • 2014-05-30
  • 暂无评论
Borg,YARN,Mesos,Torca,Corona
找了篇说明统一资源调度的文章:http://dongxicheng.org/mapreduce-nextgen/mesos_vs_yarn/
可以简单的说:
资源调度框架是在当前分布式计算的基础上产生的,在底层中对计算资源进行规划,为多种计算框架提供支持
1.简化计算框架调用资源
2.简化多计算框架并用资源,减少了分布式计算框架之间的选择,按需调用
3.为数据中心管理,自动化运维提供了更高层次的方案
资源调度的特点:

  1. 支持多种计算框架
    资源统一管理和调度平台应该提供一个全局的资源管理器。所有接入的框架要先向该全局资源管理器申请资源,申请成功之后,再由框架自身的调度器决定资源交由哪个任务使用,也就是说,整个大的系统是个双层调度器,第一层是统一管理和调度平台提供的,另外一层是框架自身的调度器。
    资源统一管理和调度平台应该提供资源隔离。不同的框架中的不同任务往往需要的资源(内存,CPU,网络IO等)不同,它们运行在同一个集群中,会相互干扰,为此,应该提供一种资源隔离机制避免任务之间由资源争用导致效率下降。
  2. 扩展性
    现有的分布式计算框架都会将系统扩展性作为一个非常重要的设计目标,比如Hadoop,好的扩展性意味着系统能够随着业务的扩展线性扩展。资源统一管理和调度平台融入多种计算框架后,不应该破坏这种特性,也就是说,统一管理和调度平台不应该成为制约框架进行水平扩展。
  3. 容错性
    同扩展性类似,容错性也是当前分布式计算框架的一个重要设计目标,统一管理和调度平台在保持原有框架的容错特性基础上,自己本身也应具有良好的容错性。
  4. 高资源利用率
    如果采用静态资源分配,也就是每个计算框架分配一个集群,往往由于作业自身的特点或者作业提交频率等原因,集群利用率很低。当将各种框架部署到同一个大的集群中,进行统一管理和调度后,由于各种作业交错且作业提交频率大幅度升高,则为资源利用率的提升增加了机会。ty_1
  5. 细粒度的资源分配
    细粒度的资源分配是指直接按照任务实际需求分配资源,而不是像MapReduce那样将槽位作为资源分配单位。这种分配机制可大大提高资源利用率。ty_2
介绍下当前的项目:
Borg:google最早的资源调度,目前已经升级为Omega
YARN:Apache,属于Hadoop的一部分,开源
Mesos:Twitter,该类项目的开源鼻祖,开源
Torca:Tencent
Corona:Facebook,开源
AutoPilot:Microsoft
可以看到大公司都为自身打造了资源调度系统
对于3种开源项目:YARN,Mesos,Corona中,YARN和Corona在设计上大致相同,所以这边以YARN和Mesos比较
Mesos相对轻量级,承担计算框架与OS之间的沟通
ty_3
YARN则是建立在框架层上的统一调控,将计算框架统一为library层
Mesos中的组件 YARN中的组件 功能
Mesos Master Resource Manager 整个集群的资源管理和调度
Mesos Slave Node Manager 单个节点的资源管理(资源隔离、汇报等)、任务启动等
Framework Executor
Framework Scheduler ApplicationMaster 单个应用程序的管理和资源二次调度,基本操作均包括注册、资源申请/获取、资源分配(给内部的任务)等。
下次在分别详细研究下每个


back up ↑

无觅相关文章插件,快速提升流量