Myriad项目: Mesos和YARN 协同工作

n7w77 10年前

  http://www.infoq.com/cn/news/2015/03/Myriad



Jim Scott发表了新文章《 两个集群的故事:Mesos和YARN 》,它从当今许多IT采购中一个相当常见的情况开始讲述,即多资源孤岛:


第一个集群是Apache Hadoop,它相当于一个岛,它的资源全部用于Hadoop平台和它的进程。第二个集群就是除了Hadoop之外其它所有资源所在的集群。

之所以产生这种情况是由于Hadoop是用 Apache YARN 来管理自己的资源,而尽管YARN在Hadoop集群中工作的不错,但对于非大数据的应用YARN就显得不那么适用了。

就像Scott在他文章中说得那样,这里的问题在于YARN所实现的调度方法:


当一个作业请求提交到YARN的资源管理器,YARN会对可用的资源进行评估,并放置作业到相应的位置。这是一个作业应该去哪儿的决定 ……, YARN针对Hadoop中的作业调度进行了优化,从历史或者典型场景的角度来说,这种优化都是针对长时间运行的批处理作业。这就意味着YARN并不是为 长时间服务,或者短生命周期的交互式查询来设计的……,虽然有可能让YARN去调度其它这些工作负载,但显然这不是个理想的模型。

另一个不同的调度模型就是 Apache Mesos ,它:


……利用了两级调度机制,即资源的请求和提供是针对框架(framework)而不是作业,可以把框架视为在Mesos上面运行的 应用。Mesos的主节点决策提供给每个框架多少资源,每个框架接着决策它能接受的资源申请以及哪种应用可以在这些资源上运行。当集群中的节点共享多个框 架时,这种资源分配方法可以获得近似最佳的数据本地化(data locality)。

现实情况中,Mesos和YARN在IT基础设施中都占有重要的位置。但是像Scott所讲述的,当你把它们两个背靠背使用时就会导致资源分裂。


在相同的数据中心同时使用Mesos和YARN两个资源管理器会带来益处,但目前需要你创建两个不同的静态分区。这也意味着某些资源会专属于Hadoop,需要用YARN来管理,而其余的则是用Mesos。

如同Scott所说,eBay、MapR和 Mesosphere合作了一个新项目,被称作 Myriad ,它可以让YARN和Mesos和谐的工作,而这会给企业和数据中心带来好处。


这个开源项目是Mesos框架和YARN调度器的结合,它使得Mesos可以管理YARN的资源请求。当YARN中有作业请求资源时,YARN的资源管理 器会先通过Myriad的调度器来调度,这样就可以和Mesos的资源申请和提供匹配起来。Mesos Master接下来会把调度请求发给Mesos的工作节点(Mesos Slave)。Mesos的工作节点会和Myriad的执行器(executor)进行通信并发送请求, Myriad执行器的作用是运行YARN的 节点管理器(Node Manager) 。当Myriad在Mesos分配的资源上加载YARN节点管理器后,YARN节点管理器就会和YARN的资源管理器通信来确定作业可用的资源。YARN 可以以自己认为适合的方法来使用资源,Myriad则在Mesos可用的资源池和YARN的有资源需求的任务间提供了无缝的桥梁。

Myriad使得在使用Mesos时,资源利用和跨数据中心的资源管理得以统一。在这种情况下,YARN的工作负载是运行在共享的集群上,相比 独立的YARN集群来说,更加动态和弹性。这个方法也使得数据中心维护团队可以扩展其资源以供给YARN(或者,从YARN拿走)而无须去重新配置集群。

查看英文原文: Project Myriad: Mesos and YARN Working Together

</div>