【问题标题】:Number of application masters in a mapreduce job?? And mapreduce processing steps in YARNmapreduce 作业中的应用程序主控数量?以及 YARN 中的 mapreduce 处理步骤
【发布时间】:2016-10-18 18:16:57
【问题描述】:

我知道 hadoop 集群中只有资源管理器。 据我了解,集群也应该只有一个 Application Master。那正确吗?以下是我对如何在 YARN 中运行 mapreduce 作业的理解。如果我的理解不正确,请指正。

YARN 上的应用程序执行顺序:

  1. 客户端向资源管理器 (RM) 提交作业。 RM 在主节点上运行。整个集群只有一个 RM 来管理资源。资源管理器是一个守护进程。
  2. RM 将通过名称节点转到 HDFS。
  3. RM 启动 Application Master (AM)。 AM 将通过名称节点到达 HDFS。它将创建一个映射器矩阵。这是映射器阶段。就像块 1 在名称节点 5 或 6 上可用一样。
  4. 根据 Mapper 矩阵信息,AM 向各个节点管理器 (NM) 发送请求,以运行每个块的特定任务。 NM 在从节点上运行。
  5. 每个 NM 向 RM 发送请求以获取容器。容器使用一组受限资源(内存、CPU 等)执行特定于应用程序的进程。
  6. Mapper 任务在容器中运行并将心跳发送到应用程序主控。 AM 还会将心跳发送给 RM。
  7. 所有流程完成后,AM 为 Reducer 任务启动另一个矩阵。
  8. 在所有 reducer 任务完成后,AM 将结果发送给 RM。
  9. RM 让客户端知道结果并杀死 AM。 应用程序大师可能会卡住。这就是它向资源管理器发送心跳的原因

非常感谢 纳特

【问题讨论】:

  • 谁能回答这个问题?

标签: hadoop mapreduce hadoop-yarn


【解决方案1】:

其他步骤看起来不错。

  1. RM 启动 Application Master (AM)。 AM 将通过名称节点到达 HDFS。它将创建一个映射器矩阵。这是映射器阶段。就像块 1 在名称节点 5 或 6 上可用一样。

此处稍作修正。 AM 只能在任何给定容器内执行。所以首先 RM 请求某个节点上的节点管理器来启动一个容器,然后只有 AM 在该容器内启动,而不是之前。所以会有一个专门用于 AM 的容器。

【讨论】:

    猜你喜欢
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    相关资源
    最近更新 更多