MapReduce简介

一、概述

  1. MapReduce是一种分布式计算模型
  2. 由谷歌提出,基于GFS进行设计,主要用于搜索领域中解决海量数据的计算问题
  3. Doug Cutting根据《MapReduce: Simplified Data Processing on Large Clusters》设计实现了Hadoop中基于HDFSMapReduce
  4. MapReduce是由两个阶段组成:Map和Reduce,用户只需要实现map以及reduce两个函数,即可实现分布式计算,这样做的目的是简化分布式程序的开发和调试周期
  5. MapReduce中包含的节点:JobTracker和TaskTracker

 

二、组成

  1. JobTracker/ResourceManager:任务调度者,管理多个TaskTracker。ResourceManager是Hadoop2.0版本之后引入Yarn之后用于替代JobTracke部分功能的机制
  2. TaskTracker/NodeManager:任务执行者
  3. Hadoop2.0后,组件转换:

 

三、结构图

 

  1. 从HDFS中获取数据
  2. MapReduce首先会将输入的数据进行逻辑切片,每一个接片是一个InputSplit对象
  3. 每一个InputSplit对象会交给一个MapTask来执行
  4. 切片中的每一行数据都会触发一次map方法,
  5. map方法的输入的键默认为数据偏移量,输入的值为这一行的数据;输出的键以及值的类型根据业务确定
  6. 在Barrier阶段,会将所有相同的键所对应的值放入一个ArrayList中,然后产生一个迭代器交给ReduceTask来执行
  7. 在ReduceTask中,每一个键都会触发一次reduce方法
  8. 将结果写到HDFS中

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值