17

Yarn 的基础设施层与原始 map reduce 架构的不同之处在于:

在 YARN 中,作业跟踪器分为两个不同的守护进程,称为Resource ManagerNode Manager(特定于节点)。资源管理器只管理对不同作业的资源分配,除了包含一个调度器,它只负责调度作业,而不用担心任何监控或状态更新。内存、cpu 时间、网络带宽等不同的资源被放入一个称为Resource Container. 在不同的节点上有不同AppMasters的运行,它们与许多这些资源容器通信,并相应地使用监控/状态详细信息更新节点管理器。

我想知道使用这种方法如何从 map-reduce 的角度提高性能?此外,如果有任何关于 Yarn 背后的动机及其相对于现有 Map-reduce 实现的好处的明确内容,请指出相同的内容。

4

5 回答 5

20

以下是一些关于YARN的文章1、2、3)。这些谈论使用 YARN 的好处。

YARN 比 MR 更通用,应该可以运行除 MR 之外的BSP等其他计算模型。在 YARN 之前,它需要一个单独的集群用于 MR、BSP 和其他。现在它们可以在单个集群中共存,从而提高集群的使用率。以下是移植到 YARN 的一些应用程序。

从传统 MR 中的 MapReduce 角度来看,Map 和 Reduce 任务有单独的插槽,但在 YARN 中,它们不是容器的固定用途。同一个容器可用于 Map 任务、Reduce 任务、Hama BSP 任务或其他任务。这导致更好的利用。

此外,它还可以在同一集群中运行不同版本的 Hadoop,这在传统 MR 中是不可能的,这使得从维护角度来看很容易。

以下是 YARN 的一些附加链接。此外,Hadoop: The Definitive Guide, 3rd Edition有一整节专门介绍 YARN。

仅供参考,开发 YARN 而不是使用一些已经做类似事情并且已经成功运行了很长时间并解决了错误的框架有点争议。

于 2012-10-21T03:56:51.693 回答
7

我不认为 Yarn 会加速现有的 MR 框架。从架构来看,我们可以看到现在的系统更加模块化——但模块化通常与更高的性能相矛盾。
可以说 YARN 与 MapReduce 无关。MapReduce 刚刚成为 YARN 应用程序之一。您可以将其视为从一些嵌入式程序迁移到其中包含程序的嵌入式操作系统
同时,Yarn 为具有不同框架的不同MR 实现打开了大门。例如,如果我们假设我们的数据集比集群内存小,我们可以获得更好的性能。我认为http://www.spark-project.org/就是这样一个例子
总结一下:Yarn 并没有改进现有的 MR,但是会让其他 MR 实现在各个方面都更好。

于 2012-10-21T11:32:54.850 回答
3

以上所有答案都涵盖了很多信息:我将所有信息简化如下:

MapReduce:纱线:

1. 它是平台加应用程序它是 Hadoop 2.0 中的一个平台和
在 Hadoop 1.0 中,它只是 Hadoop 1.0 中不存在的
Hadoop 2.0 中的应用程序

2.它是单用途系统,即,它是多用途系统,我们可以运行
我们只能运行 MapReduce 作业。MapReduce、Spark、Tez、Flink、BSP、MPP、
                                    MPI、Giraph 等...(通用)

3. JobTracker 可扩展性,即资源管理和
资源管理和应用程序管理都分离了 &
由 RM+NM 管理的作业管理,特定于范式的 AM
                                    分别。

4. 资源管理不善灵活的资源管理即,
系统即槽(map/reduce)容器。

5. 不高可用 高可用和高可靠性。

6. 向外扩展至 5000 个节点 向外扩展 10000 多个节点。

7. Job->tasks Application -> Jobs的DAG -> tasks

8. 经典 MapReduce = MapReduce Yarn MapReduce = MapReduce API +      
   API + MapReduce 框架 MapReduce 框架 + YARN 系统
   + MapReduce System So MR 程序被重写
                                    Hadoop 1.0 在 Yarn 上运行也没有
                                    更改一行代码,即
                                    向后兼容性。
于 2015-09-01T20:08:16.247 回答
2

让我们看看 Hadoop 1.0 的缺点,Hadoop 2.0 通过添加 Yarn 解决了这些缺点。

  1. 可扩展性问题:即使您在 Hadoop 集群中有数千个节点,Job Tracker 也可以在单台机器上运行。Job tracker 的职责:资源管理、Job 和 Task 调度和监控。由于所有这些进程都在单个节点上运行,因此该模型不可扩展。
  2. 可用性问题(单点故障):Job Tracker 是单点故障。
  3. 资源利用:由于预定义的 Map & Reduce 任务槽数量,资源没有得到正确利用。当所有 Mapper 节点都忙时,Reducer 节点处于空闲状态,不能用于处理 Mapper 任务。
  4. 与 Map Reduce 框架的紧密集成:Hadoop 1.x 只能运行 Map reduce 作业。不存在对 Map Reduce 作业以外的作业的支持。

现在,Hadoop 2.x 中的YARN架构消除了单个 Job Tracker 瓶颈

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

ResourceManager有两个主要组件:SchedulerApplicationsManager

调度程序负责根据容量、队列等熟悉的限制为各种正在运行的应用程序分配资源。调度程序是纯粹的调度程序,因为它不执行任何监视或跟踪应用程序的状态。

ApplicationsManager负责接受作业提交,协商第一个容器以执行特定于应用程序ApplicationMaster and provides the service for restarting the ApplicationMaster container on failure.

每个应用程序的 ApplicationMaster 负责从调度程序协商适当的资源容器,跟踪它们的状态并监控进度。

现在YARN的优势

  1. 可扩展性问题已解决
  2. No single point of failure. All components are highly available
  3. Resource utilization has been improved with proper utilization of Map and reduce slots.
  4. Non Map Reduce Jobs can be submitted
于 2016-02-18T11:09:44.747 回答
1

看起来这个链接可能是您正在寻找的:http: //developer.yahoo.com/blogs/hadoop/posts/2011/02/mapreduce-nextgen/

我的理解是 YARN 应该更通用。您可以创建自己的 YARN 应用程序,直接与资源管理器协商资源 ( 1 ),而 MapReduce 只是已经存在的几个应用程序管理器之一 ( 2 )。

于 2012-10-21T03:40:46.937 回答