hadoop第二天——4. 初识MapReduce

本文围绕MapReduce展开,介绍其思想是分而治之,先将复杂大任务拆分成小任务并行处理,再合并结果。阐述Hadoop MapReduce设计构思,它是分布式运算编程框架,抽象出Map和Reduce函数式编程模型。还说明了其框架结构,包含MRAppMaster、MapTask和ReduceTask三类实例进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四、MapReduce

1. 理解MapReduce思想

针对复杂的大任务,尝试进行拆分成若干个小任务,并行处理提高效率,最终再合并结果。
先分再合、分而治之
分:针对没有依赖关系的任务,可以拆分的任务进行划分,分成小的任务。
之所以进行拆分,原因可以并行计算提高执行效率
合:对map阶段的结果进行全局汇总

2. Hadoop MapReduce设计构思

MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上。
表现形式:有一个input和一个output

  • 如何面对大数据处理:分而治之
  • 抽象出两个函数式编程模型:Map和Reduce
    Map负责map阶段的业务逻辑,局部并行计算的逻辑
    Reduce负责reduce阶段的业务逻辑,全局汇总计算的逻辑
    MapReduce中定义了如下的Map和Reduce两个抽象的编程接口,由用户去编程实现:
map: (k1;v1) -> [(k2;v2)]
reduce: (k1;[v2]) -> [(k2;v3)]

     在MapReduce框架中,数据都是以<key,value>的形式存在。

  • 统一架构,为用户屏蔽了底层的细节,隐藏系统层细节
    用来做什么—>业务问题
    具体做什么—>技术问题
    程序员仅需要关心其应用层的具体计算问题,仅需编写少量的处理应用本身计算问题的程序代码。如何具体完成这个并行计算任务所相关的诸多系统层细节被隐藏起来,交给计算框架去处理:从分布代码的执行,到大到数千小到单个节点集群的自动调度使用。

3. MapReduce框架结构

一个完整的MapReduce程序在分布式运行时有三类实例进程:

  • MRAppMaster:负责整个程序的过程调度及状态协调
  • MapTask:负责map阶段的整个数据处理流程
  • ReduceTask:负责reduce阶段的整个数据处理流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值