【问题标题】:What is the MapReduce application master?MapReduce 应用程序主控是什么?
【发布时间】:2019-05-15 13:11:15
【问题描述】:

来自 Hadoop 权威指南

整个过程如图7-1所示。在最高级别, 有五个独立的实体:

• 提交 MapReduce 作业的客户端。

• YARN 资源管理器,负责协调分配 集群上的计算资源。

• YARN 节点管理器,用于启动和监控计算 集群中机器上的容器。

• 协调任务的 MapReduce 应用程序主机 运行 MapReduce 作业。应用程序主控和 MapReduce 任务在资源管理器调度的容器中运行,并且 由节点管理器管理。

什么是 MapReduce 应用程序主控?

在用Java 编写的MapReduce 程序中,我们需要三样东西:一个map 函数、一个reduce 函数和一些带有main() 函数的代码来运行该作业。 MapReduce应用是否掌握了main()函数的代码来运行map reduce作业?

【问题讨论】:

    标签: hadoop mapreduce hadoop-yarn


    【解决方案1】:

    典型 Hadoop 程序中的main() 函数通常会做这些事情:

    • 指定作业的输入/输出路径
    • 配置映射器/reducers/combiners/partitioners
    • 配置内存

    然后它创建一个Job 接口的实例,运行它并调用waitForCompletion,这会阻塞直到作业完成。此调用在后台发送 Yarn 应用程序请求,从而在集群的某处生成 AppMaster。

    AppMaster 负责创建 Map/Reduce 流程,跟踪其状态并报告进度。 Hadoop 集群上运行的每个作业都有 1 个 AppMaster 实例。

    【讨论】:

    • 谢谢。 MapReduce 应用程序是否掌握了带有 main() 函数的代码来运行 map reduce 作业?
    • @Tim 抱歉,如果我不清楚,但同样,您的 main() 函数仅用于配置和提交作业。 AppMaster 协调分布式集群上的作业执行。 AppMaster 将使用您提供的 Mapper 和 Reducer 类,它们将处理数据
    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    相关资源
    最近更新 更多