一、Apache Yarn 、Twill和 Slider 的介绍

1、Apache Yarn

YARN的基本思想是将资源管理和作业调度/监视的功能分解为单独的守护进程。我们的想法是拥有一个全局ResourceManager(RM)和每个应用程序ApplicationMaster(AM)。应用程序可以是单个作业,也可以是作业的DAG。

ResourceManager和NodeManager构成了数据计算框架。ResourceManager是在系统中的所有应用程序之间仲裁资源的最终权限。NodeManager是每台机器框架代理,负责容器,监视其资源使用情况(CPU,内存,磁盘,网络)并将其报告给ResourceManager / Scheduler。

每个应用程序ApplicationMaster实际上是一个特定于框架的库,其任务是协调来自ResourceManager的资源,并与NodeManager一起执行和监视任务。

[Yarn基础]-- Apache Yarn 、  Apache Twill  和 Apache Slider 的对比_Slider


ResourceManager有两个主要组件:Scheduler和ApplicationsManager。

  • 调度程序负责根据熟悉的容量,队列等约束将资源分配给各种正在运行的应用程序。调度程序是纯调度程序,因为它不执行应用程序状态的监视或跟踪。此外,由于应用程序故障或硬件故障,它无法保证重启失败的任务。调度程序根据应用程序的资源需求执行其调度功能; 它是基于资源Container的抽象概念,它包含内存,cpu,磁盘,网络等元素。
  • 调度程序具有可插入策略,该策略负责在各种队列,应用程序等之间对集群资源进行分区。当前的调度程序(如CapacityScheduler和FairScheduler)将是插件的一些示例。
  • ApplicationsManager负责接受作业提交,协商第一个容器以执行特定于应用程序的
  • ApplicationMaster,并提供在失败时重新启动ApplicationMaster容器的服务。每个应用程序
  • ApplicationMaster负责从Scheduler协商适当的资源容器,跟踪其状态并监视进度。

YARN支持的概念,资源预留通过ReservationSystem,即允许用户在指定时间资源和时间的限制(例如,截止日期),以及后备资源的配置文件,以确保重要jobs.The可预见的执行组件ReservationSystem跟踪资源超时,执行预留的准入控制,并动态指示基础调度程序确保预留已满。

为了将YARN扩展到超过几千个节点,YARN 通过YARN Federation功能支持Federation的概念。联合允许透明地将多个纱线(子)群集连接在一起,并使它们看起来像一个大型群集。这可以用于实现更大规模,和/或允许多个独立群集一起用于非常大的工作,或者用于具有跨所有工作的容量的租户。

2、Apache Twill

Apache Twill极大地简化并减少了开发工作,使您能够通过YARN上的简单抽象层快速轻松地开发和管理分布式应用程序。YARN虽然最初是为MapReduce v2设计的,但可以用作通用的群集资源管理框架,可以在Hadoop®集群上运行几乎任何类型的应用程序。但是,凭借其强大的功能,YARN可以为开发人员带来复杂性。

相比之下,Twill的YARN抽象模型非常类似于Java线程模型,许多开发人员都熟悉它。此外,Twill还提供应用程序生命周期管理,服务发现,分布式流程协调以及故障恢复,这是许多分布式应用程序所需要的。

Apache Twill允许您使用更简单的编程模型开发,部署和管理分布式应用程序,具有丰富的内置功能,可解决常见的分布式应用程序问题。无论您是开发人员还是操作工程师,您都会发现Apache Twill可以帮助您大大减少在Hadoop®集群上开发和运行应用程序的工作量。

3、Apache Slider

Apache Slider是一个应用程序,用于在Apache Hadoop YARN集群上部署现有的分布式应用程序,监视它们并根据需要使它们变大或变小 - 即使在应用程序运行时也是如此。

应用程序可以停止然后启动; 部署的应用程序在YARN群集中的分布是持久的 - 允许在先前位置附近放置尽力而为的位置。记住先前数据放置的应用程序(例如HBase)可以显示此功能的快速启动时间。

YARN本身监视托管已部署应用程序部分的“YARN容器”的运行状况 - 通知Slider管理器应用程序容器故障。然后,Slider向YARN请求一个新的容器,Slider将失败的组件部署到该容器中。因此,Slider可以使托管应用程序的大小与指定的配置保持一致,即使面对集群中服务器的故障 - 以及应用程序本身的部分

一些功能是:

  • 允许用户在YARN群集中创建按需应用程序
  • 允许不同的用户/应用程序运行不同版本的应用程序。
  • 允许用户以不同方式配置不同的应用程序
  • 根据需要停止/重启应用程序实例
  • 根据需要扩展/收缩应用程序实例

Slider工具是Java命令行应用程序。
该工具将信息保存为HDFS中的JSON文档。
启动集群后,可以使用Slider命令使集群增长或缩小。也可以停止群集并稍后重新启动。

二、Apache Yarn 、Twill 和 Slider的对比

Apache Yarn

Apache Twill

Apache Slider

优点

1、完全定制开发 、灵活

2、排查问题简单、依赖组件少

1、实现Yarn的部署很简单

2、故障自动恢复

3、开发成本低;

4、支持动态伸缩接口

1、有各种状态指标

2、故障自动恢复

3、开发成本低;

4、支持动态伸缩接口

缺点

开发成本高

1、社区孵化的版本

2、使用的用户少

3、稳定性有待考量

1、角色间协调能力较差

2、不支持依赖启动的功能

选择使用 Apache Twill 还是使用 Apache Slider 的标准:具有核心功能、稳定、开发成本低

三、参考