Hadoop学习笔记4: 【org.apache.hadoop.util】包文件解析
2014-04-30 00:00
483 查看
Hadoop 【org.apache.hadoop.util】包文件说明 1.Daemon 【类】 public class Daemon extends Thread { { 注意:这里有一行静态代码,总是设置线程为守护线程。 } 成员变量: Runnable runnable = null; 函数变量: public Daemon() { 什么都不做 } public Daemon(Runnable runnable) { 将runnable传给父类Thread; 将本地runnable指向参数runnable. 设置线程名字为runnable.toString() } public Runnable getRunnable() { 获取本地的runnable 变量。 } } 2 2 LogFormatter【类】 日志类不建议过多关注,非系统核心功能。 public class LogFormatter extends Formatter { 成员变量: private static final String FORMAT = "yyMMdd HHmmss"; private static final String NEWLINE = System.getProperty("line.separator"); private final Date date = new Date(); private final SimpleDateFormat formatter = new SimpleDateFormat(FORMAT); private static boolean loggedSevere= false; private static boolean showTime = true; private static boolean showThreadIDs = false; 函数变量: public static Logger getLogger(String name) { 通过工厂模式获得一个日志记录对象。 } public static void showTime(boolean showTime) { 1 本函数为静态函数 2 设置LogFormatter类的静态变量showTime. } public static void setShowThreadIDs(boolean showThreadIDs) { 1 本函数为静态函数 2 设置LogFormatter类的静态变量showThreadIDs } public static boolean hasLoggedSevere() { 1 本函数为静态函数 2 返回静态变量loggedSevere } public synchronized String format(LogRecord record) { 1 普通方法,意味着要生成一个对象才能调用。 2 返回的字符串根据以下规则生成: 2.1)需要显示时间,则显示当前时间。 2.2)需要显示线程ID,则显示线程ID。 2.3)如果是严重的消息,就显示严重并设置全局静态变量loggedSevere为true. 2.4) 显示record对应的消息。 2.5)如果record.getThrown()存在,则继续打印这个对象的相应消息。 } Public static PrintStream getLogStream (final Logger logger,final Level level) { 返回一个自定义的PrintStream. 细节不用去深究,日志类,不涉及系统核心功能。 } } 3 PrintJarMainClass 【类】 public class PrintJarMainClass { 函数成员: public static void main(String[] args) { 打印一个Jar包的主类名字。很简单。 } } 4 Progress【类】 public class Progress { 成员变量: private String status = ""; private float progress; private int currentPhase; private ArrayList phases = new ArrayList(); private Progress parent; private float progressPerPhase; 函数变量: public Progress() { 什么都不做。 } public Progress addPhase() { 1-先生成一个Progress节点。 2 加入到phases列表中,并设置新节点的parent为当前this. 这样构成了父子关系映射。 3 由于phases列表更新了,所以相应重新设置progressPerPhase,实际上也就 是如果一个子节点完成了,相应的进度增加多少。 比如 如果有10个子节点,则每个节点完成则进度增加10% 如果有 5个子节点,则每个节点完成则进度增加20% 4 最终返回新生成的节点。 } public Progress addPhase(String status) { 1 新增一个计算子节点。 2设置这个新节点的status变量。 最终返回新增子节点。 } public void setStatus(String status) { 设置本地status变量的setter方法。 } public void set(float progress) { 设置当前节点的进度progress的setter 方法。 } public void startNextPhase() { currentPhase增加1,很简单。 } public Progress phase() { 返回当前正在运行的子节点对象。 } public void complete() { 通常是子节点调用。 1 设置当前进度为1,表示自己已经完成了任务。 2 如果自己还有父节点的话,则告知父节点请将父节点的currentPhase自 增1. 相当于说”hey,man, 我已经完成了,你可以去让下一个节点工作了。” } private float getInternal() { 返回当前节点的总的进度。 注意:一个树的组织的进度算法是如何计算的,就跟生活中的算法一样的。 } public float get() { 计算当前节点所在的root树的全局进度。 } private void toString(StringBuffer buffer) { 打印出从一个字符串,形式如: “a>b>c” 其中a是当前节点的status名称, b是a节点中当前运行未完成子节点的名称 c是b节点中当前运行未完成子节点的名称 } public String toString() { 打印出从一个字符串,形式如: “a>b>c” 其中a是当前节点的status名称, b是a节点中当前运行未完成子节点的名称 c是b节点中当前运行未完成子节点的名称 } }
相关文章推荐
- Hadoop_2.1.0 MapReduce序列图
- 使用Hadoop搭建现代电信企业架构
- 单机版搭建Hadoop环境图文教程详解
- hadoop常见错误以及处理方法详解
- hadoop 单机安装配置教程
- hadoop的hdfs文件操作实现上传文件到hdfs
- hadoop实现grep示例分享
- Apache Hadoop版本详解
- linux下搭建hadoop环境步骤分享
- hadoop client与datanode的通信协议分析
- hadoop中一些常用的命令介绍
- Hadoop单机版和全分布式(集群)安装
- 用PHP和Shell写Hadoop的MapReduce程序
- hadoop map-reduce中的文件并发操作
- Hadoop1.2中配置伪分布式的实例
- Hadoop安装感悟
- hadoop安装lzo
- HDFS 文件操作
- HBase基本原理
- HDFS DatanodeProtocol——sendHeartbeat