MapReduce源码(二)

  吐槽一下,上一篇中用MarkDown编辑器感觉太差劲了,写一点花了那么多的时间。

还是接着上面的写,写到Context类的继承关系。在Mapper类中和Reducer类中使用的Context类名一样,但是它们却是不同的上下文对象,Mapper类中Context继承的是MapContext类,而Reducer类中Context继承的则是ReduceContext,但是这两个类都继承自相同的抽象父类TaskInputOutputContext,该类实现了Progressable接口,作用是将运行情况报告给Hadoop框架。

下图是Context类的继承关系:

不同层次的类的交互对象有所不同:

MapContext 关注   RecordReader<KEYIN,VALUEIN> reader 和 InputSplit split;

TaskInputOutputContext关注: RecordWriter<KEYOUT,VALUEOUT> output; StatusReporter reporter; OutputCommitter committer

TaskAttemptContext关注:TaskId

JobContext关注:Configuration conf 和JobId jobId

这样一层层传到上层类中的东西也越来越少,而在各层则会报告各自关注的对象。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值