hadoop - MapReduce 和 Yarn 的区别

标签 hadoop mapreduce hadoop-yarn speculative-execution

我正在搜索有关散兵游勇问题的 hadoop 和 mapreduce 以及有关该问题的论文
但是昨天我发现有 hadoop 2 with Yarn ,,
不幸的是,没有论文讨论 Yarn 中的掉队问题
所以我想知道 MapReduce 和 Yarn 在散兵游勇部分有什么区别? Yarn 有掉队问题吗?
当MRmaster向资源管理器请求资源时,资源管理器会把它需要的所有资源都给MRmaster或者根据集群计算能力?
非常感谢,,

最佳答案

这是 MapReduce 1.0 和 MapReduce 2.0 (YARN)

MapReduce 1.0

在典型的 Hadoop 集群中,机架通过核心交换机互连。核心交换机应连接到架顶式交换机 使用 Hadoop 的企业应考虑使用 10GbE、绑定(bind)以太网和冗余架顶式交换机,以降低发生故障时的风险。默认情况下,文件被分成 64MB block 并分布在数据节点上。每个 block 都有一个默认的复制因子 3,这意味着在任何给定时间都会有数据的 3 个副本。 Hadoop 是“机架感知”的,HDFS 在不同机架上的节点上复制了数据 block 。 JobTracker 将任务分配给最接近数据的节点,具体取决于节点的位置,并帮助 NameNode 在读取期间确定到客户端的 “最接近” block 。管理员提供一个脚本,告诉 Hadoop 节点在哪个机架中,例如:/enterprisedatacenter/rack2。

MapReduce 1.0 的局限性 – Hadoop 最多可以扩展到 4,000 个节点。当它超过该限制时,它会引发不可预测的行为,例如级联故障和整个集群的严重恶化。另一个问题是 Multi-Tenancy ——不可能在 Hadoop 集群上运行 MapReduce 1.0 以外的其他框架。

MapReduce 2.0

MapReduce 2.0 有两个组件 – 具有集群资源管理功能的 YARN 和 MapReduce。

在MapReduce 2.0中,JobTracker分为三个服务:

  1. ResourceManager,一种持久性 YARN 服务,用于在集群上接收和运行应用程序。 MapReduce 作业是一个应用程序。
  2. JobHistoryServer,提供有关已完成作业的信息
  3. Application Master,管理每个 MapReduce 作业并在作业完成时终止。

TaskTracker 已被 NodeManager 取代,NodeManager 是一种 YARN 服务,用于管理节点上的资源和部署。 NodeManager 负责启动可以是 map 或 reduce 任务的容器。

这种新架构打破了 JobTracker 模型,允许新的 ResourceManager 管理跨应用程序的资源使用,而 ApplicationMasters 负责管理作业的执行。此更改消除了瓶颈,并允许 Hadoop 集群扩展到超过 4000 个节点 的更大配置。该架构还允许同时执行各种编程模型,例如图形处理、迭代处理、机器学习和通用集群计算,包括传统的 MapReduce。

关于hadoop - MapReduce 和 Yarn 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26943850/

相关文章:

java - Java 中的 Spark Hive Context hql 问题 - 在 yarn 中运行 spark 作业时

hadoop - 在 Hadoop 2.0 时代,名称节点和数据节点术语是否仍然有效?

statistics - 通过Hadoop中的列计算均值和标准差

amazon - 在Amazon Mapreduce中运行的Pig脚本中的STREAM关键字

hadoop - 查询HiveServer2时Impyla从org.apache.hadoop.hive.ql.exec.mr.MapRedTask返回代码1

java - NLineInputFormat 用法超出了 GC 开销限制

MongoDB映射/减少多个集合?

hadoop - 在 yarn 中启动/停止 Spark 流作业的正确方法是什么?

hadoop - 我如何只下载 hdfs 而不是 hadoop?

hadoop - 我的Dataproc集群(版本-1.4.0-debian9)HA模式不起作用