Mesos和YARN的简介
Mesos和YARN之间的主要区别围绕着优先级的设计以及调度任务的方式。Mesos于2007年诞生于UC Berkeley并在Twitter和Airbnb等公司的商用下不断被巩固,它的设计初衷是作为整个数据中心的一个可拓展的全局资源管理器。YARN出于管理Hadoop规模的需求。在YARN出现之前,资源管理(功能)集成在Hadoop MapReduce V1架构中,为了有助于MapReduce的扩展而将其移除(转移到YARN中实现)。MapReduce的Job Tracker并不能在超过上千台的机器中有效调度MapReduce任务。YARN在下一代Hadoop生命周期中被创造,主要围绕着资源拓展。
资源调度上的区别:
Mesos:Mesos让framework决定mesos提供的资源是否合适,从而接受或者拒绝这个资源,当framework长期拒绝资源,mesos将跳过该framework,将资源提供给其他framework(mesos本身并不知道各个应用程序资源需求)
Yarn:对于yarn来说,决定权在于yarn本身,这对于各种各样的应用程序来说或许就是个错误的决定
从scaling的角度来说,mesos更scalable(Yarn是应用程序的App Mst会把各个任务的资源要求汇报给Yarn,Yarn根据需求为应用程序分配资源)
框架担任的角色:
在Mesos中,各种计算框架是完全融入Mesos中的,也就是说,如果你想在Mesos中添加一个新的计算框架,首先需要在Mesos中部署一套该框架;而在YARN中,各种框架作为client端的library使用,仅仅是你编写的程序的一个库,不需要事先部署一套该框架。从这点上说,YARN运行和使用起来更加方便。
其他区别:
Mesos
YARN
参考资料:
(1)Mesos论文:Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center. B. Hindman, A. Konwinski, M. Zaharia, A. Ghodsi, A.D. Joseph, R. Katz, S. Shenker and I. Stoica, NSDI 2011, March 2011.
(2)董的博客:统一资源管理与调度平台(系统)介绍
(3)Mesos和YARN的区别以及它们如何协同工作