【问题标题】:Is there any Difference between YARN and MR2?YARN 和 MR2 有什么区别吗?
【发布时间】:2017-10-09 12:55:21
【问题描述】:
我对@987654321@ 和MR2 有点困惑。他们一样吗?我在一些文档中看到YARN 作为运行分布式应用程序的平台,而 MapReduce 作为这种分布式应用程序,这是什么意思?那是程序员构建的MapReduce 应用程序吗(例如:wordcount 程序)?
我再次看到“编写自己的YARN 应用程序”,这是什么意思? wordcount 程序属于哪个类别,YARN 应用程序或MR2 应用程序?
如果它不在stackoverflow标准中,请纠正问题,我试图表达我所有的疑问。
【问题讨论】:
标签:
hadoop
mapreduce
hadoop-yarn
hadoop2
【解决方案1】:
首先在 HADOOP 2 中引入 YARN。在 hadoop 1 中,单个 Name 节点管理 Hadoop 集群的整个命名空间。随着 YARN(YET ANOTHER RESOURCE MANAGER)的引入,集群资源管理由 YARN 负责。
您可以假设 YARN 在 HDFS 之上运行,并且在 YARN 上运行不同的数据处理组件,如 mapreduce 和其他运行。
在 Hadoop 1 中,用户可以选择使用 Java、Python 或其他使用流式传输的脚本语言或使用数据转换语言 Pig 编写 MapReduce 程序。无论使用哪种方法,基本上都是依靠 MapReduce 处理模型来运行的。
YARN 支持除 MapReduce 之外的多种处理模型。这样做最显着的好处之一是我们不再局限于使用通常 I/O 密集型、高延迟的 MapReduce 框架。
现在您的问题-'编写自己的 YARN 应用程序',这是什么意思?
现在我们可以在 YARN 上编写任何分布式应用程序。 MR2是负责运行MapReduce框架的分布式应用程序之一。所以字数统计程序属于负责运行这个mapreduce框架的MR2应用程序。
【解决方案2】:
YARN 和 MR2 相关,但不相同。
MapReduce 是一种计算方式,在 Hadoop 世界中,MapReduce 也是 Hadoop 1.0 的同义词;在 Hadoop 1.0 中,MapReduce 提供了资源管理和运行“MapReduce”(1.0)应用程序的执行框架
在 Hadoop 2.0 中,资源管理和执行框架被拆分为两个独立的实体,YARN(Yet Another Resource Negotiator)是集群计算资源的通用资源管理系统,MapReduce 2.0(缩写为MR2 ) 一个执行引擎。
-
MR2 是 YARN 应用程序
- 您可以编写一个基于“MapReduce”(2.0) 的应用程序,该应用程序将在
YARN 上运行
- 如果您在 Hadoop 2.0 集群上并使用
Pig 或 Hive 之类的默认执行引擎 MR2,它们将作为 MR2 应用程序在 YARN 上运行
在 Hadoop 2.0 中进行这种拆分的部分原因是允许除 MR2 之外的其他执行引擎;今天这还包括 Apache Tez 和 Apache Spark,它们可以在 YARN 上运行。