2013-05-06 57 views
12

Apache Helix和Hadoop YARN(MRv2)有何区别。有没有人有这两种技术的经验?有人能向我解释Helix相对于YARN的优缺点,以及LinkedIn为什么开发自己的集群管理而不是使用YARN?Apache Helix vs YARN

在此先感谢 托比

回答

36

虽然螺旋和纱线都提供的功能来管理分布式应用程序中,有两个重要的区别。

YARN主要提供跨机器群集的资源管理功能,同时要求应用程序编写自定义逻辑以通过资源管理器协商资源。另一方面,Helix提供了一种声明式管理分布式应用程序状态的方式,从而使应用程序无需执行自定义实现。目前,Helix不像YARN那样提供资源管理功能。因此这两个系统是相辅相成的。

作为一个例子,假设你有一组节点,并且你想在它们上面启动一些容器。

  1. 分配基于所述资源利用
  2. 启动容器,
  3. 监视器容器,节点之间的容器,如果他们死重启容器

YARN提供了框架/机械做的上方。一旦你有容器,你必须实现以下功能:

  1. 分区和复制:你需要分配任务到容器,可能分配多个任务到每个容器。为了冗余,您可能选择将任务分配给多个容器。
  2. 状态管理:管理任务的状态
  3. 容错:容器出现故障时,您可能选择在其余容器之间重新分配工作或根据SLA要求重新启动容器。
  4. 集群扩展:您可能会启动新容器来处理工作负载,然后您希望重新分配该任务。
  5. 节流:在您可能要限制像数据移动的一些操作

螺旋可以很容易地实现上述功能,所有这些操作。在YARN中,需要编写应用程序主文件来实现这些功能(这种实现的一个示例是hadoop map reduce作业的应用程序主文件)。

Helix在LinkedIn开发,用于管理在线/近线空间的分布式数据系统。在这个空间里,一旦启动容器,它会一直运行直到它崩溃。当容器发生故障时,任务可能会在其余容器之间重新分配。

YARN带有资源调度算法,可以灵活高效地利用短期任务(如地图缩减作业)的可用硬件。

+1

感谢您的好解释! – Tobi 2013-05-10 18:29:21

+0

确实很好的解释! – 2014-11-16 02:20:28