统一资源管理与调度平台入门

  • 背景

基于数据密集型应用的计算框架不断出现,从不支持离线处理的MapReduce,到支持在线处理的Storm,从迭代式计算框架Spark到流式处理框架S4,...而在大部分公司中,这几种框架可能都会采用,考虑到资源利用率、运维成本、数据共享等因素,公司一般希望将所有这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源里进行统一使用,这样,便诞生了资源统一管理与调度平台,典型代表是Mesos和Yarn。

  • Mesos

统一资源管理与调度平台入门_第1张图片

总体上看,Mesos是一个master/slave结构,其中,master是非常轻量级的,仅保存的framework(各捉计算框架称为framework)和mesos slave的一些状态,而这些状态很容易通过framework和slave重新注册而重构。因而很容易使用zookeeper解决mesos master的单点故障问题。

Mesos master实际上是一个全局的资源调度器,采用某种策略将某个slave上的空闲资源分配给某一个framework,各种framework通过自己的调度器向Mesos master注册,以接入Mesos中,而Mesos slave主要功能是汇报任务的状态和启动各个framework的executor。

 

 

  • yarn

 

yarn是下一代MapReduce,即MRv2,主要是为了解决原始hadoop扩展性较差,不支持多计算框架而提出的。整个平台由Resouce Manager(master,功能是资源分配)和Node Manager组成(slave,功能是节点管理)。较于HadoopMapReduce,基最大特点是将JobTracker拆分成Resource manager和Application Master。

 

  • Mesos与Yarn比较

(1)框架担任的角色

在Mesos中,各种框架是完全融入mesos中的,也就是说,如果你想在mesos中添加一个新的计算框架,首先需要在mesos中部署一套该框架;而在Yarn中,各种框架作为client端的library使用,仅仅是你编写的程序的一个库,不需要事先部署一套该框架。从这点上说,yarn运行和使用起来更加方便。

(2)调度机制

两种系统都采用了双层调度机制,即第一层是源管理系统将资源分配给应用程序(或框架),第二层应用程序将收到的资源进一步分配给内部的任务。但是资源分配器智能化程序不同,mesos是基于resource offer的调度机制,包含非常少的调度语义,他只是简单的将资源推送给各个应用程序,由应用程序 选择是否接资源,而Mesos本身并不知道各个应用程序资源需求;yarn则不同,应用程序的ApplicationMaster会把各个任务的资源要求汇报给Yarn,yarn则根据需要为应用分配资源。

 

最后欢迎大家访问我的个人网站:1024s

你可能感兴趣的:(docker)