Mapper类的源码分析

Mapper类源码解析
--------------------------
1.来自[org.apache.hadoop.mapreduce.Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>]
2.java Doc说明:
Map将输入数据<k,v>转换成中间数据集<k,v>
map将为输入的数据的每一个记录(行)执行map函数,MR通过inputfomart生成inputSplit(切分)对象,
并根据每个split产生相对应的maptask。
split切分原则(逻辑的):默认每个block对应一个split。slop指标:1.1
注:如一个文件为130m,生成2个block;一个大小为128m,另一个为2m;
inputsplit切分个数为:1个;
map的输出通过每个reduce进行分区(partition);用户可以通过自定义分区判定哪一个key发送到指定的reduce;
3.Mapper构成:
4个方法:
setup() : 在任务开始时调用一次;
map() : 对输入分块中的每个键/值(行偏移量/行内容)对调用一次。大多数应用程序应该覆盖这个,但默认是identity函数。
cleanup() : 在任务结束时调用一次;
run() : 专家用户可以重写此方法以获得更全面的控制执行。该方法描述了map阶段的函数调用过程。
4.总结:
maptask任务数:由inputsplit切分决定;inputsplit决定由block决定。每个job的map阶段肯定存在的;
reducetask任务数:由job.setNumReducetasks()进行设置,每个reduce根据partition生成不同的输出文件;
案例:设置reducenum数量,默认为1;测试将reducenum设置为2或5
设置reducenum数量为0,取消reduce阶段;
不设置mapper;

转载于:https://www.cnblogs.com/lyr999736/p/9248471.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值