简单理解MapReduce如何做词频统计

MapReduce是Hadoop解决大规模数据布式计算的方案,可以解决几乎所有大数据领域内的计算需求。MapReduce顾名思义包含Map和Reduce两个过程,map 的主要输入是一对 <Key, Value> 值,经过 map 计算后输出一对 <Key, Value> 值;然后将相同 Key 合并,形成 <Key, Value 集合 >;再将这个 <Key, Value 集合 > 输入 reduce,经过计算输出零个或多个 <Key, Value> 对。
假如我现在有文本:

hello master
bye master

首先构建输入的键值对,一行数据做为一个value,key在计算过程中不需要使用,将value映射为<单词,1>的形式:

<key1, "hello master">
<key2, "bye master">

经过map计算后得到:

<hello, 1>
<master, 1>
<bye, 1>
<master, 1>

接下来合并相同key的键值对,得到:

<hello, 1>
<master, [1,1]>
<bye, 1>

将这个结果交给Reduce操作,得到:

<hello, 1>
<master, 2>
<bye, 1>

经过这么几个步骤,MapReduce就帮我们计算好了我们输入文本的词频结果。

这样的计算框架使得MapReduce进行分布式计算也非常方便,只要将输入的文本内容分开,map操作之间完全解耦,可以放到不同的机器上独立进行,这样就极大的加快了大数据的处理速度。

猜你喜欢

转载自blog.csdn.net/weixin_34326179/article/details/87568261