侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Hadoop学习笔记4: 【org.apache.hadoop.util】包文件解析

2022-07-04 星期一 / 0 评论 / 0 点赞 / 77 阅读 / 5303 字

Hadoop 【org.apache.hadoop.util】包文件说明1.Daemon 【类】public class Daemon extends Thread { {   注意:这里有一行静

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节点中当前运行未完成子节点的名称    }}


广告 广告

评论区