mapreduce执行工作原理流程

0.input 输入

InputFormat 类来处理数据选择

1.spilt 分片

将数据切分为 Key-Value (K1和V1)键值对,k1=文件的磁盘地址,value=每行的数据

2.map

由实现map方法来定义,自定义Map逻辑,将第一步的结果转换成另外的 Key-Value (K2和V2)键值对

3.shuffle(核心)

  • 对上述输出的Key2-Value2
    键值对进行分区,同时在这里打标识的操作,后面reducetask会根据这个标志来拉取指定的Key2-Value2键值对。分区如按照key长度来分,比如<5的个数分为一类。
  • 对不同分区的数据按照相同的Key 排序,这里有是内存中排序,环形缓存默认100M,80%触发溢出,会直接落磁盘,然后merge文件。这里有的思想:就是当处理大量数据排序时,可以优先让一部分数据先保存落盘,然后进行归并排序来处理整体!
  • (非必要,可以配置选择)对分组过的数据初步规约,目的是降低数据的网络拷贝
  • 对数据进行分组,相同 key的value
    放入一个集合中,为了节约空间。然后等待reducetask来拉取
    注意:先有分区后再有的分组,reducetask是根据分区来拿的。还有那个megre后的文件不一定代表数据一定有序的,最终有序会在reducetask中保证。

4.reduce

  • 拉取所属相同分区的数据(前面的标识)到指定的reducetask中,结果进行排序以人及合并,然后执行实现reduce类的reduce方法进行处理,转为新的Key-Value(K3和V3)
  • 输出 设置 OutputFormat 处理并保存reduce 输出的 Key3-Value3 数据

5.ouput

指定输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值