我正在搜索有关落后问题和此问题中的论文的 hadoop 和 mapreduce
但是昨天我发现Yarn有hadoop 2,
不幸的是,没有论文讨论 Yarn 中的落后者问题
所以我想知道MapReduce和Yarn在部分落后者中有什么区别?
yarn 遭受流浪汉的困扰吗?
而当MRmaster向资源管理器请求资源时,资源管理器会给MRmaster提供它需要的所有资源还是根据集群计算能力?
非常感谢,,

最佳答案

这是 MapReduce 1.0 和 MapReduce 2.0 (YARN)

MapReduce 1.0

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

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

  • TaskTracker 已替换为 NodeManager,这是一个 YARN 服务,用于管理节点上的资源和部署。 NodeManager 负责启动可以是 map 或 reduce 任务的容器。

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

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

    10-16 06:03