分享

Hadoop源代码分析:包org.apache.hadoop.mapreduce(7)

本帖最后由 pig2 于 2014-1-16 17:18 编辑

我们来看一下具体的接口,它们都处于包org.apache.hadoop.mapreduce中。

26.PNG


上面的图中,类可以分为4种。右上角的是从Writeable继承的,和Counter(还有CounterGroup和Counters,也在这个包中,并没有出现在上面的图里)和ID相关的类,它们保持MapReduce过程中需要的一些计数器和标识;中间大部分是和Context相关的*Context类,它为Mapper和Reducer提供了相关的上下文;关于Map和Reduce,对应的类是Mapper,Reducer和描述他们的Job(在Hadoop 中一次计算任务称之为一个job,下面的分析中,中文为“作业”,相应的task我们称为“任务”);图中其他类是配合Mapper和Reduce工作的一些辅助类。

如果你熟悉HTTPServlet, 那就能很轻松地理解Hadoop采用的结构,把整个Hadoop看作是容器,那么Mapper和Reduce就是容器里的组件,*Context保存了组件的一些配置信息,同时也是和容器通信的机制。

和ID相关的类我们就不再讨论了。我们先看JobContext,它位于*Context继承树的最上方,为Job提供一些只读的信息,如Job的ID,名称等。下面的信息是MapReduce过程中一些较关键的定制信息:

27.png

28.png

Job继承自JobContext,提供了一系列的set方法,用于设置Job的一些属性(Job更新属性,JobContext读属性),同时,Job还提供了一些对Job进行控制的方法,如下:
  •            mapProgress:map的进度(0—1.0);
  •            reduceProgress:reduce的进度(0—1.0);
  •            isComplete:作业是否已经完成;
  •            isSuccessful:作业是否成功;
  •            killJob:结束一个在运行中的作业;
  •            getTaskCompletionEvents:得到任务完成的应答(成功/失败);
  •            killTask:结束某一个任务;


上一篇
Hadoop源代码分析:包mapreduce.lib.input及包mapreduce.lib.map(6)



欢迎加入about云群371358502、39327136,云计算爱好者群,亦可关注about云腾讯认证空间||关注本站微信

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条