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操作之间完全解耦,可以放到不同的机器上独立进行,这样就极大的加快了大数据的处理速度。
网友评论