MapReduce的工作原理

MapReduce框架完全是对<key,value>对的操作。所有你输入的一组数据会被MapReduce框架转化成一批<key,value>对后参与Maper,Reducer过程,最后得到的结果也是一批键值对。下面是一个Hadoop例子来说明这个过程。

wordcount是Hadoop自带的一个例子,实现了统计文本文件中单词出现的个数,价格有两个文本文件如下:

文本1:Hello World Bye Word

文本2:Hello Hadoop GoodBye Hadoop

(一):在进行Map过程之前。MapReduce框架会对文本文件进行处理,转化成<key,value>对,默认情况下是实现每一行文本一个<key,value>对,其中key为该行首字符相对于文本文件首地址的偏移量,value则是文本文件每一行的内容。所以经过MapReduce框架处理后的到的第一批<key,value>对为:

文本1:

key1    value1

0           Hello World Bye Word

文本2:

key1    value1

0           Hello Hadoop GoodBye Hadoop

(二):经过MapReduce框架处理后的<key1,value1>将作为Map过程的输入,经过重写map函数处理后得到的第二批键值对如下(wordcount例子是map方法为分解每一行的单词,省略排序过程):

文本一:

key2    value2

Hello    1

World   1

Bye       1

World    1

文本二:

key2     value2

Hello       1

Hadoop  1

GoodBye 1

Hadoop   1

(三)map方法完成对键值对的操作后将执行combiner过程,即对拥有相同的key值的value合并起来,其实是一个reducer的实现,所以得到第三批<key,value>对:

文本一:

key3     value3

Hello      1

World     2

Bye         1

文本二:

key3     value3

Hello       1

Hadoop   2

GoodBye  1

(四)将以上的第三批键值对交给Reducer处理后输出最后的结果(合并文件,得到结果):

key4   value4

Hello     2

World    2

Bye        1

Hadoop   2

GoodBye  1



注:个人学习分析,纯属自我理解。个人认为利用MapReduce思想可以在信息搜索等技术上得到应用。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值