Apache Helix vs YARN
Apache Helix和Hadoop YARN(MRv2)有什么区别。 有没有人有这两种技术的经验? 有人可以向我解释一下Helix在YARN上的优缺点,以及LinkedIn为什么开发自己的集群管理而不是使用YARN?
在此先感谢Tobi
虽然Helix和YARN都提供了管理分布式应用程序的function,但两者之间存在重要差异。
YARN主要提供跨机器群集的资源管理function,同时要求应用程序编写其自定义逻辑以协商来自资源管理器的资源。 另一方面,Helix提供了一种声明性地管理分布式应用程序状态的方法,从而使应用程序不必进行自定义实现。 目前,Helix不像YARN那样提供资源管理function。 因此,这两个系统是相辅相成的。
举例来说,假设您有一组节点,并且您想在它们上启动一些容器。
- 根据资源利用率在节点之间分配容器
- 启动容器,
- 监视容器,如果他们死了重启容器
YARN提供了执行上述操作的框架/机制。 拥有容器后,必须实现以下function:
- 分区和复制:您需要将任务分配给容器,可能会为每个容器分配多个任务。 为了实现冗余,您可以选择将任务分配给多个容器。
- 状态管理:管理任务的状态
- 容错:当容器出现故障时,您可以选择在剩余容器中重新分配工作,也可以根据SLA要求重新启动容器。
- 群集扩展:您可以启动新容器来处理工作负载,然后您希望重新分配任务。
- 限制:在所有这些操作中,您可能希望限制某些操作,如数据移动
Helix可以轻松实现上述function。 在YARN中,需要编写应用程序主机来实现这些(此类实现的一个示例是hadoop map reduce作业的Application master)。
Helix是在LinkedIn开发的,用于管理在线/近线空间的分布式数据系统。 在这个空间中,一旦容器被启动,它就会一直运行直到它崩溃。 当容器发生故障时,可能会在剩余容器中重新分配任务。
YARN附带资源调度算法,可以灵活高效地利用可用硬件来完成短暂的任务,例如地图缩减作业。
- 使用–jars的spark-submit yarn-cluster不起作用?
- Hadoop:无法使用Jps命令
- ClassNotFoundException在修改后的SimpleShortestPathsVertex上运行GiraphRunner
- Hadoop gzip压缩文件
- 不推荐使用HTable(config,tablename)类型。 有什么用呢?
- java.sql.SQLException:没有为jdbc找到合适的驱动程序:hive:// localhost:10000 / default
- 如何在使用hadoop时使用logger api编写java日志文件
- 必需字段’client_protocol’未设置
- 写入HDFS只能复制到0个节点而不是minReplication(= 1)