MapReduce:word count 之通俗解释mr

1. 输入(input):如给定一个文档,包含如下四行:

Hello Java

Hello C

Hello Java

Hello

C++

2. 拆分(split):将上述文档中每一行的内容转换为key-value对,即:

0 - Hello Java

1 - Hello C

2 – Hello Java

3 - Hello C++

3. 映射(map):将拆分之后的内容转换成新的key-value对,即:

(Hello , 1)

(Java , 1)

(Hello , 1)

(C , 1)

(Hello , 1)

(Java , 1)

(Hello , 1)

(C++ , 1)

4. 派发(shuffle):将key相同的扔到一起去,即:

(Hello , 1)

(Hello , 1)

(Hello , 1)

(Hello , 1)

(Java , 1)

(Java , 1)

(C , 1)

(C++ , 1)

注意:这一步需要移动数据,原来的数据可能在不同的datanode上,这一步过后,相同key的数据会被移动到同一台机器上。最终,它会返回一个list包含各种k-value对,即:

{ Hello: 1,1,1,1}

{Java: 1,1}

{C: 1}

{C++: 1}

5. 缩减(reduce):把同一个key的结果加在一起。如:

(Hello , 4)

(Java , 2)

(C , 1)

(C++,1)

6. 输出(output): 输出缩减之后的所有结果。

原文参考:https://www.zhihu.com/question/23345991/answer/223113502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值