首页 > 解决方案 > 什么是 MapReduce 应用程序主控?

问题描述

来自 Hadoop 权威指南

在此处输入图像描述

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

• 提交 MapReduce 作业的客户端。

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

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

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

什么是 MapReduce 应用程序主控?

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

标签: hadoopmapreducehadoop-yarn

解决方案


main()典型 Hadoop 程序中的函数通常执行以下操作:

  • 指定作业的输入/输出路径
  • 配置映射器/减速器/组合器/分区器
  • 配置内存

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

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


推荐阅读