hadoop - 什么是 MapReduce 应用程序主控?
问题描述
来自 Hadoop 权威指南
整个过程如图 7-1 所示。在最高级别,有五个独立实体:
• 提交 MapReduce 作业的客户端。
• YARN 资源管理器,它协调集群上计算资源的分配。
• YARN 节点管理器,它启动和监控集群中机器上的计算容器。
• MapReduce 应用程序主机,它协调运行 MapReduce 作业的任务。应用程序主机和 MapReduce 任务在由资源管理器调度并由节点管理器管理的容器中运行。
什么是 MapReduce 应用程序主控?
在用 Java 编写的 MapReduce 程序中,我们需要三样东西:map 函数、reduce 函数和一些带有main()
函数的代码来运行作业。MapReduce 应用程序是否掌握了具有main()
运行 map reduce 作业的功能的代码?
解决方案
main()
典型 Hadoop 程序中的函数通常执行以下操作:
- 指定作业的输入/输出路径
- 配置映射器/减速器/组合器/分区器
- 配置内存
然后它创建一个Job
接口实例,运行它并调用waitForCompletion
,这会阻塞直到作业完成。此调用在后台发送 Yarn 应用程序请求,从而在集群的某个位置生成 AppMaster。
AppMaster 负责创建 Map/Reduce 流程,跟踪其状态并报告进度。Hadoop 集群上运行的每个作业都有 1 个 AppMaster 实例。
推荐阅读
- r - 按类型获取包含值的范围的比例
- python - 删除 json 中不在 json 描述中的空格、换行符和制表符
- javascript - 在编辑/更新时填充模态
- google-apps-script - 在 Google 表格中,我想使用 Apps 脚本过滤掉过去的日期,但不过滤掉空白单元格
- java - 使用双三次或双线性缩放来缩放位图
- openstack - 使用 Kolla 的一体化模式部署 OpenStack,但在检查 MariaDB 端口活跃度时失败
- tampermonkey - 如何使用 tampermonkey 显示来自 gitlab wiki 中另一个站点的链接的内容?
- reactjs - '你不应该在外面使用
' 调试反应 - package - Ada:如何组织嵌套包
- reactjs - 纱线工作区共享包未在 create-react-app 中加载