本帖最后由 xuanxufeng 于 2016-11-2 17:36 编辑
问题导读
1.同一个数据中心使用Mesos和YARN是否会冲突?
2.Mesos和YARN发生冲突,本文是如何解决的?
3.Myriad的作用是什么?
虽然有些人可能认为YARN和Mesos大同小异,但并非如此。区别在于用户一开始使用时需求模型的不同。每种模型没有明确地错误,但每种方法会产出不同的长期结果。我认为这就是选择如何使用它们的关键。Ben Hindman和Berkeley AMP实验室在设计Mesos时,与Google设计Omega的团队同期进行,Mesos系统得益于Google的Omega系统设计的经验,构建了一个更好的非单体(两阶段)的调度器。
当你把如何管理数据中心作为整体来评估时,一方面使用Mesos来管理数据中心的所有资源,另一方面使用YARN来安全的管理Hadoop任务,但它并不具有管理整个数据中心的能力。数据中心运营商倾向于把集群划分为的不同区域(Hadoop集群和非Hadoop集群)来应对这两个场景。
在同一个数据中心使用Mesos和YARN,为了受益于资源管理器,目前需要创建两个静态分区。此时意味着当指定资源被Hadoop的YARN管理时,Mesos就无法起作用。这也许过于简化了,尽管这么做确实有效。但本质上,我们是想避免这种情况。
Myriad项目介绍
这不禁让我们发问:能否让企业和数据中心受益于YARN和Mesos的协调工作?答案是肯定的。一些著名的公司——eBay、MapR和Mesosphere共同合作了一个项目叫做Myriad. 这个开源软件项目既是一个Mesos框架,又是一个YARN调度器,这就使得Mesos能够管理YARN的资源请求。当一个任务到达YARN时,它会通过Myriad调度器调度它,使请求与Mesos提供的资源匹配。相应的,Mesos也会将它传递给Mesos工作节点。之后,这个Mesos节点会把这个请求与一个正在执行YARN节点的管理器的Myriad执行器关联。Myriad在Mesos资源启动YARN节点管理器,启动之后,Mesos资源会告诉YARN资源管理器哪些资源可用。这时YARN就可以随意地使用这些资源。Myriad为Mesos的可用资源池和YARN的任务(需要用到Mesos中资源)之间架起了一座无缝连接的桥梁。
这种做法的优点是,它不仅让你在共享的集群中弹性的使用YARN,使得YARN比最初设计时更具活力和弹性。而且,它使得数据中心的运维团队在给YARN资源扩容时无需重新配置YARN集群。整个数据中心的扩容变得十分容易。该模型提供了一种简单的方式运行和管理多个YARN的实现,甚至在同一个集群上运行多个不同版本的YARN。
Myriad把YARN和Mesos两者的优势结合起来。通过使用Myriad项目,让Mesos和YARN可以协作,你可以完成一个实时业务。数据分析可以在和运行生产服务的相同硬件上执行。你不再需要面临由静态分区引起的资源限制(和低利用率)。资源可以根据业务的需求弹性的伸缩。
最后的思考为了确保人们理解这个项目的来源,我认为Mesos和YARN擅长在自己特定的场景下工作,并且都有提升的空间。两者的资源管理器在安全领域都能有所提升;而安全的支持对企业采纳与否至关重要。 Mesos需要一个端到端的安全架构,我个人觉得可以使用Kerberos来提供安全支持,但根据个人经验,这样做应该不会简单。对Mesos其他方面的提升同样十分复杂,主要归纳为资源的抢占和撤销。假设一个业务的所有资源已经分配,当业务依赖运行的一个最重要的资源项需要扩容时,甚至这个扩容工作仅需要数十分钟来完成,你仍然会因为缺少资源而无法完成。资源的抢占和撤销就可以解决这个问题。目前,Mesos围绕着这个问题有多种解决方案,但我十分期待Mesos委员会使用Dynamic Reservations和Optimistic (Revocable) Resources Offers来解决这个问题。 Myriad作为一种新的技术,让我们把数据中心或云端的所有资源当作一个简单的资源池来使用。正如Hadoop消除数据孤岛之间的壁垒一样,Myriad消除了孤立的集群之间的壁垒。通过Myriad,开发者可以专注于业务依赖的数据和应用程序,而运维团队可以更敏捷地管理他们的计算资源。这为我们专注数据而不被基础设施持续困扰打开了另一扇窗。有了Myriad,存储网络的限制和计算与存储之间的协调就成为我们在实现完整的灵活性、敏捷和伸缩上的最后一个需要攻克的难题。 https://github.com/mesos/myriad 这里提供文档更详细地描述了它是如何运作的。
参考 http://ju.outofmemory.cn/
|