Hadoop之TaskAttemptContext类和TaskAttemptID类
先来看看TaskAttemptContext的类图
:
Figure1:TaskAttemptContext类图
用户向Hadoop提交Job(作业),Job在JobTracker对象的控制下执行。Job不是独立完成的,Job提交后,Hadoop根据集群的规模将Job分解为若干个Task(任务),然后分发到集群中,在TaskTracker的控制下运行。Task包括Map Task和Reduce Task,是MapReduce的Map操作和Reduce操作的地方。
要了解这个类,还得去看看另一个类——TaskAttemptID,Figure2是TaskAttemptID的类图:

Figure2:TaskAttemptID类图
TaskAttemptID的功能就是提供一个task attempt的ID,而一个task attempt是一个Map Task或Reduce Task实例。TaskAttemptID由两部分组成,第一部分是TaskID,第二部分是task attempt序号。TaskAttemptID的格式如下:
attempt_201108091551_0001_m_000000_0 或
attempt_local_0001_m_000000_0
attempt_201108091551_0001_m_000000_0表示2011年8月9日15时51分启动的JobTracker中第0001号作业的第000000号map task的第0号task attempt。
分段来分析就是:
attempt:表示该标识代表task attempt;
201108091551:表示JobTracker启动时间;
0001:表示在JobTracker上运行的0001号job;
000000:如果紧跟后面的字母是“m”,表示000000号map task,如果紧跟后面的字母是“r”,则表示000000号reduce task;
0:表示0号task attempt;
第二种格式有点不一样,在第二个字段中不是JobTracker的启动日期,而是local,表示单机或伪集群模式运行,其他字段含义与第一种格式一样。
分析了TaskAttemptID类后,我们现在来分析TaskAttemptContext类。由类名可以知道,该类是提供task attempt的相关信息。
getTaskAttemptID:获取task attempt的ID,即类似attempt_local_0001_m_000000_0;
setStatus:设置task当前的状态;
getStatus:获取task当前的状态;
progress:报告进度,这是个空方法,子类会通过重写这份方法来进行相关操作,如使用StatusReporter报告进度;
TaskInputOutputContext继承TaskAttemptContext,重写了setStatus方法和progress方法。在TaskInputOutputContext的这两个方法中,都使用StatusReporter对象。可见,继承TaskAttemptContext的子类主要是重写这两个方法来完成工作的。
Hadoop之TaskAttemptContext类和TaskAttemptID类的更多相关文章
- Hadoop: Text类和String类的比较
一般认为Text类和String类是等价的,但二者之间其实存在着不小差别: 以<Hadoop权威指南>中的案例为例,给定字符串 String s = "\u0041\u00DF ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- 【转】UML类图与类的关系详解
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
- Java如何解决脆弱基类(基类被冻结)问题
概述 大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends.“JAVA设计模式”一书详细阐述了怎样用 ...
- 类A have-a 类B,类B访问类A public 成员
需求是类A中包含类B,而类B又需要访问类A的public属性的成员. 首先类B中要访问类A的属性,那么对于类B而言,我们必须要知道有类A这个类,所以在类B的具体实现之前我们需要前向声明类A. 对于类A ...
- UML(一) 类图及类间关系
原创文章,同步发自作者个人博客,http://www.jasongj.com/uml/class_diagram/ UML类图 UML类图介绍 在UML 2.*的13种图形中,类图是使用频率最高的UM ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- C# 根据类名称创建类示例
//获得类所在的程序集名称(此处我选择当前程序集) string bllName = System.IO.Path.GetFileNameWithoutExtension(System.Reflect ...
- 使用date类和format类对系统当前时间进行格式化显示
一:Date------------String 代码1:(代码二对显示出来的时间格式进行优化) package DateDemo; import java.text.SimpleDateFormat ...
随机推荐
- iOS 增加UIButton按钮的可点击区域
在很多时候,按钮可能看起来那么大,但是在它周围进行点击时,都能够触发事件,是因为它的可点击区域比我们看到的button要大. 在使用AutoLayout的时候,我们处理的是按钮的image属性,所以这 ...
- css中的盒子模型
css中的盒子模型 css中的盒子模型,有两种,一种是“标准 W3C 盒子模型”,另外一种是IE盒子模型. 1.w3c盒子模型 从图中可以看出:w3c盒子模型的范围包括了:margin,borde ...
- .net泛型理解
泛型简介: 泛型(Generic Type)是.NET Framework2.0最强大的功能之一.泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从而实现高度可重用 ...
- vs2010 问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
vs2010 问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 在安装 VS2010 后,再安装 VS2012 VS2015 等,原来的 .N ...
- SLAM学习笔记(2)SLAM算法
SLAM算法分为三类:Kalman滤波.概率滤波.图优化 Kalman滤波方法包括EKF.EIF:概率滤波包括RBPF,FastSLAM是RBPF滤波器最为成功的实例, 也是应用最为广泛的SLAM方法 ...
- [SharpDevelop]程序入口
在StartUp项目中,SharpDevelopMain类的Main函数.
- hadoop wordcount
Mapper // map的数量与数的分片有关系 public class WCMapper extends Mapper<LongWritable, Text, Text, LongWrita ...
- ios-通知简单示例
通知是一种一对多的信息广播机制,一个应用程序同时只能有一个NSNotificationCenter(通知中心)对象,用来添加通知观察者或者说监听者,以及发送通知. 用的地方是:不同控制器的传值回调.d ...
- python AES 双向对称加密解密
高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分 ...
- PG sys function
The System Catalogs of PostgreSQLscott=# \dS List of relations Schema | Name | Type | Owner -------- ...