hadoop学习从0开始-mapreduce

来源:互联网 发布:linux 查找字符串 编辑:程序博客网 时间:2024/06/04 22:24

Mapper过程详解:

1.首先根据输入进行分片,inputsplit,每个分片的大小是固定的,分片的大小跟数据库的大小是相同的,比如默认是64M,如果输入文件有两个,32M和72M,会有三个分片,不足的是一个,超过的72M会分为两个,一个是8M,另一个是64M。

2,第二阶段是根据规则,生成键值对,键是文本位置,值是文本内容。

3.调用mapper的map类,每一个键值对都会调用一次map类,每一个mapper都是一个进程。

4.然后根据键来对数据进行分区,同一个键值的数据放到同一个分区内。分区的数目就是reducer运行的数量。

5.第五阶段是对每个分区的数据进行排序。先按照键进行排序,键相同的按照相同键的数值进行排序。如果有第六阶段,进入第六阶段,如果没有,直接作为文件输出。

6.第六阶段是对键相同的进行规约,执行reduce过程,该阶段数据量会减少。然后输出成linux文件。

Reducer过程详解:

1.reducer获取多个mapper的输出,将其复制到本地。

2.将复制的数据进行合并,对合并的数据进行排序。

3.对相同键的调用一次reduce方法,这些数据会生成linux文件,然后写入hdfs

0 0
原创粉丝点击