MapReduce开发运行的精简原理(mapreduce开发流程)

作者:黑马程序员
链接:https://zhuanlan.zhihu.com/p/81237437
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

简单介绍

相信关于Hadoop中MapReduce的相关文章会很多,这里只简单介绍一下MapReduce的相关知识。

Hadoop的MapReduce来源于Google公司的三篇论文中的MapReduce,其核心思想是“分而治之”

Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。

Reduce负责“合”,即对map阶段的结果进行全局汇总。

现阶段MapReduce一般运行在Hadoop2.x版本的yarn资源平台上,具体运行过程后面会有详细说明。

MapReduce编程规范

MapReduce 的开发一共有八个步骤, 其中 Map 阶段分为 2 个步骤,Shuffle 阶段 4 个步骤,Reduce 阶段分为 2 个步骤

Map 阶段 2 个步骤

1)设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步

2)自定义 Map 逻辑, 将第一步的结果转换成另外的 Key-Value(K2和V2) 对, 输出结果

Shuffle 阶段 4 个步骤

3)对输出的 Key-Value 对进行分区

4)对不同分区的数据按照相同的 Key 排序

5)(可选) 对分组过的数据初步规约, 降低数据的网络拷贝

6)对数据进行分组, 相同 Key 的 Value 放入一个集合中

Reduce 阶段 2 个步骤

7)对多个 Map 任务的结果进行排序以及合并, 编写 Reduce 函数实现自己的逻辑, 对输入的 Key-Value 进行处理, 转为新的 Key-Value(K3和V3)输出

8)设置 OutputFormat 处理并保存 Reduce 输出的 Key-Value 数据

MapReduce开发运行的精简原理(mapreduce开发流程)

MapReduce的步骤图

yarn资源调度

yarn是hadoop集群当中的资源管理系统模块,从hadoop2.0开始引入yarn模块,yarn可为各类计算框架提供资源的管理和调度,主要用于管理集群当中的资源(主要是服务器的各种硬件资源,包括CPU,内存,磁盘,网络IO等)以及调度运行在yarn上面的各种任务。

相比于hadoop1.x版本,yarn核心出发点是为了分离资源管理与作业监控,实现分离的做法是拥有一个全局的资源管理ResourceManager(RM),以及每个应用程序对应一个的应用管理器ApplicationMaster(AM)。

总结一句话就是说:yarn主要就是为了调度资源,管理任务。

YARN总体上是Master/Slave结构,主要由ResourceManager、NodeManager、 ApplicationMaster和Container等几个组件构成。

ResourceManager(RM) 负责处理客户端请求,对各NM上的资源进行统一管理和调度。给ApplicationMaster分配空闲的Container 运行并监控其运行状态。主要由两个组件构成:调度器和应用程序管理器:

调度器(Scheduler):调度器根据容量、队列等限制条件,将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位是Container。Shceduler不负责监控或者跟踪应用程序的状态。总之,调度器根据应用程序的资源要求,以及集群机器的资源情况,为应用程序分配封装在Container中的资源。

应用程序管理器(Applications Manager):应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster 、监控ApplicationMaster运行状态并在失败时重新启动等,跟踪分给的Container的进度、状态也是其职责。

NodeManager (NM) NodeManager 是每个节点上的资源和任务管理器。它会定时地向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态;同时会接收并处理来自ApplicationMaster 的Container 启动/停止等请求。

ApplicationMaster (AM): 用户提交的应用程序均包含一个ApplicationMaster ,负责应用的监控,跟踪应用执行状态,重启失败任务等。ApplicationMaster是应用框架,它负责向ResourceManager协调资源,并且与NodeManager协同工作完成Task的执行和监控。

Container: Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当ApplicationMaster向ResourceManager申请资源时,ResourceManager为ApplicationMaster 返回的资源便是用Container 表示的。

yarn的架构和工作流程

MapReduce开发运行的精简原理(mapreduce开发流程)

步骤分析:

  1. 客户端通过命令(hadoop jar xxx.jar)提交上传任务到主节点ResourceManager(RM)中的ApplicationManager进程
  2. 主节点RM判断集群状态,选择一台NodeManager(NM),开启一块资源Container,用来开启AppMaster进程
  3. AppMaster进程获取RM接收的任务请求,进行任务分配
  4. AppMaster根据任务情况向RM中的ResourceScheduler索要资源分配方案
  5. AppMaster根据资源分配方案找到到各个NodeManager从节点
  6. 在从节点上开启资源Container,并运行任务Task
  7. AppMaster获取各个Task上传的任务执行进度和结果
  8. AppMaster将任务执行的结果返回给ApplicationManager

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年5月14日 上午10:28
下一篇 2023年5月14日 上午10:44

相关推荐

  • ,不得利用财政资金支付科研人员承担的知识产权费用

    不得利用财政资金支付科研人员承担的知识产权费用 近年来,随着科技的不断发展,很多科研人员都在努力推动科技进步,同时也取得了许多重要的成果。然而,在这个过程中,一些研究人员却利用财政…

    科研百科 2024年11月28日
    1
  • 大创项目算科研项目吗

    大创项目通常被视为科研项目。 大创项目是指学生团队在本科期间参与的,具有创新性和实用性的科研项目。这些项目通常是由学校 or 企业组织的,旨在促进学生的科技创新能力和实践能力,并为…

    科研百科 2025年3月20日
    3
  • 科研项目课题重要吗

    科研项目课题的重要性 科研项目课题是科学研究的核心,它是实现科学成果的关键。科研项目课题的质量直接影响着科学研究的进展和成果,也决定着科学家的职业前途和声誉。因此,科研项目课题的重…

    科研百科 2025年3月5日
    1
  • wfilter

    Wi-Fi 滤波器:一种保护网络的实用工具 Wi-Fi 滤波器是一种用于保护网络安全的实用工具。随着 Wi-Fi 网络的普及,网络安全问题也日益突出。Wi-Fi 滤波器可以通过过滤…

    科研百科 2024年10月4日
    9
  • 技术基础科研项目分类

    技术基础科研项目分类 随着科技的不断发展,许多科研项目都涉及到各种不同的技术基础领域。这些技术基础领域对于科研项目的顺利进行和取得成功至关重要。本文将介绍一些常见的技术基础科研项目…

    科研百科 2025年3月22日
    6
  • 科研项目负责人和成员(对科研项目负责人的评价)

    科研项目负责人是项目管理中非常重要的一环。他们负责制定项目计划,协调团队成员,监督项目进展,并确保项目按时完成。在这篇文章中,我将对科研项目负责人进行一些评价。 首先,一个好的科研…

    科研百科 2024年4月5日
    87
  • 企业所得税“两免三减半”优惠期的确定(企业所得税 两免三减半)

    《财政部 税务总局 发展改革委 工业和信息化部关于促进集成电路产业和软件产业高质量发展企业所得税政策的公告》(2020年第 45 号)规定自2020年1月1日起,国家鼓励的软件企业…

    科研百科 2023年3月25日
    317
  • 光伏电站项目管理系统

    光伏电站项目管理系统 随着光伏电站的快速增长,项目管理也变得越来越复杂。传统的手动管理方式已经无法满足现代项目的需求,因此,光伏电站项目管理系统应运而生。 光伏电站项目管理系统是一…

    科研百科 2024年12月30日
    2
  • 合同管理制度销售

    合同管理制度销售 合同管理制度是保证企业销售合同有效实施的重要保障措施,也是企业长期发展的重要基石。随着市场经济的发展,合同管理制度已经成为企业销售过程中必不可少的一部分。本文将介…

    科研百科 2024年9月20日
    2
  • 高途科研项目含金量

    高途科研项目含金量高 高途科研项目是一项备受关注的高质量项目,其含金量高,具有广泛的应用前景和巨大的市场潜力。近年来,随着科技的不断发展,越来越多的企业和个人开始关注高途科研项目,…

    科研百科 2025年3月7日
    3