MapReduce简介
其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果
MapReduce主要步骤叙述
Map阶段:
Step 1:读取输入文件的内容,并解析成键值对(<key, value>)的形式,输入文件中的每一行被解析成一个<key, value>对,每个<key, value>对调用一次map()函数。
Step 2:用户写map()函数,对输入的<key,value>对进行处理,并输出新的<key,value>对。
Step 3:对Step 2中得到的<key,value>进行分区操作。
Step 4:不同分区的数据,按照key值进行排序和分组,具有相同key值的value则放到同一个集合中。
Step 5(可选):分组后的数据进行规约。
Reduce阶段:
Step 1:对于多个map任务的输出,按照不同的分区,通过网络传输到不同的Reduce节点。
Step 2:对多个map任务的输出结果进行合并、排序,用户书写reduce函数,对输入的key、value进行处理,得到新的key、value输出结果。
Step 3:将reduce的输出结果保存在文件中。