MapReduce 的知识点详解<2>

Shuffle(混洗)
shuffle 输入是key value的 list
shuffle 输出是key value的list

MapReduce计算任务的步骤
第一步 :inputFormat
inputFormat到hdfs上读取数据
将数据传给split

第二步split
split将数据进行逻辑切分,将数据传给RR

第三步:RR
RR:将传入的数据转换成一行一行的数据,输出行首字母的偏移量和偏移量对应的数据
将数据传给MAP

第四步:MAP
MAP:根据业务需求实现自定义代码
将数据传给Shuffe的partition

第五步:partition
partition:按照一定的分区规则,将key value的liet进行分区
将数据传给Shuffle的Sort

第六步:Sort
Sort:对分区内的数据进行排序
将数据传给Shufflfflffle的combiner

第七步:combiner
combiner:对数据进行局部聚合。
将数据传给Shufflfflffle的Group

第八步:Group
Group:将相同key的key提取出来作为唯一的key,将相同key对应value获取出来作为value的liet
将数据传给Reduce

第九步:Reduce
Reduce:根据业务需求进行最终的合并汇总。
将数据传给outputFormat

第十步:outputFormat
outputFormat:将数据写入HDFS

在这里插入图片描述

打包代码到集群运行
在代码中添加

打包提交
MAPREDUCE程序的输出:若是一个路径,那么程序会计算路径下的所有文件。
若是一个文件,那么只计算这个文件。

MAPREDUCE程序的输出:输出的路径必须不能存在

Map的数量不能人为设置,reduce的数量可以人为设置。
job.setNumReduceTasks(3);
reduce数量越多,计算速度越快。
combinner的添加
在map端局部聚和,设置reduce的class
job.setCombinerClass(WordCountReduce.class);

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值