Hadoop之MapReduce的理解

MapReduce

一,主要包括两个部分,Map与Reduce。
1,Map任务:对数据进行获取,分割,处理与输出。
map任务之前对文件的解析:
一个文件,通常被分为若干个128MB的数据块,正常情况下,在进行map任务之前,会对文件进行切片,默认大小也为128MB,也就是说,一个数据块就是一个切片。 一个切片中的内容被解析为{key:value}键值对,key默认为偏移量,可以自己定义,value通常指本行的内容。

2,编写map()函数,对已经解析好的{key:value}进行获取,与分割,处理(排序),输出所需要的{key1:value1}键值对(自定义的键值对)。

3,shuffle阶段:
{key1:value1}键值对,进行分区与排序,key相同,则肯定在一个区。

4,Reduce任务:
进入reduce阶段输入阶段,在shuffle的完成后,形成的{key1:set(value1)}导入reduce()函数,计算出结果{key2:value2}。

Hadoop之MapReduce的理解