【分布式架构】Apache Helix vs YARN
Chinese, Simplified
原文:https://stackoverflow.com/questions/16401412/apache-helix-vs-yarn
Apache Helix和Hadoop YARN(MRv2)有什么区别。 有没有人有这两种技术的经验? 有人能解释一下Helix对YARN的优缺点,以及LinkedIn为什么开发自己的集群管理而不是使用YARN?
虽然Helix和YARN都提供了管理分布式应用程序的功能,但两者之间存在重要差异。
YARN主要提供跨机器群集的资源管理功能,同时要求应用程序编写其自定义逻辑以从资源管理器协商资源。另一方面,Helix提供了一种声明性地管理分布式应用程序状态的方法,从而使应用程序不必进行自定义实现。目前,Helix不像YARN那样提供资源管理功能。因此,这两个系统是相辅相成的。
作为一个例子,假设您有一组节点,并且您想要在它们上启动一些容器。
- 根据资源利用率在节点之间分配容器
- 启动容器,
- 监视容器,如果他们死了重启容器
YARN提供了执行上述操作的框架/机制。拥有容器后,必须实现以下功能:
- 分区和复制:您需要将任务分配给容器,可能会为每个容器分配多个任务。为了实现冗余,您可以选择将任务分配给多个容器。
- 状态管理:管理任务的状态
- 容错:当容器出现故障时,您可以选择在剩余容器中重新分配工作,也可以根据SLA要求重新启动容器。
- 群集扩展:您可以启动新容器来处理工作负载,然后您希望重新分配任务。
- 限制:在所有这些操作中,您可能希望限制某些操作,如数据移动
Helix可以轻松实现上述功能。在YARN中,需要编写应用程序主机来实现这些(这种实现的一个例子是hadoop map reduce作业的Application master)。
Helix是在LinkedIn开发的,用于管理在线/近线空间中的分布式数据系统。在这个空间中,一旦容器被启动,它就会一直运行直到它崩溃。当容器发生故障时,可能会在剩余的容器中重新分配任务。
YARN附带资源调度算法,可以灵活高效地利用可用硬件来完成短暂的任务,例如地图缩减作业。
本文地址
https://architect.pub/apache-helix-vs-yarn
- 170 次浏览
SEO Title
Apache Helix vs YARN