Map-Reduce复习

本文主要复习MapReduce的过程,包括Mapper端和Reducer端的关键操作。在Mapper端,输入数据按照LongWritable和Text类型处理,经过split、分区、排序、溢写和merge等步骤,形成分区有序的文件。Reducer端则分为copy、sort和reduce三个阶段,通过fetcher线程获取数据,先写入内存缓冲区,再合并到磁盘,最后生成最终文件。
摘要由CSDN通过智能技术生成

Mapper端输入: 例:Mapper<LongWritable, Text, Text, IntWritable>,输入的键、值类型在作业中的 FileInputFormat 中定义,默认是 TextInputFormat。 TextInputFormat 的 键是LongWritable,表示截至目前从文件中读出的字节数。输入值是Text对象,表示从文本中读入的一行记录。当然了,如果使用不同的输入格式,很可能需要改变这些键、值的数据类型.

简单复习一下mapreduce过程

map端

在这里插入图片描述
一个split 对应一个 map task,首先数据会按照key进行分区(partition默认计算方法:key的hash值对reduce task数量取模),然后进入环形缓冲区,进行分区,排序,溢写,然后对多个临时小文件merge,落盘形成一个分区有序的文件。所谓分区有序, 相同partition的键值对存储在一起,partition里面又按照key升序(默认)排列

reduce端

在这里插入图片描述
reduce大致分为三个阶段 copy、sort、 reduce
copy阶段,reduce进程启动 fetcher线程,通过http方式请求map端获取属于自己的文件。首先将文件写入内存缓冲区,当copy的文件到达一定的阈值,就合并文件到磁盘,磁盘中产生大量的溢写文件,直到没有map的数据才结束,然后合并磁盘中的文件,生成最终的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值