`
paddy.w
  • 浏览: 506136 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Configuration简析

 
阅读更多
        以下分析基于Hadoop-0.19.2

        我们在写job的时候经常会写这么一句
JobConf conf = new JobConf(***.class)

        显而易见,这是加载Hadoop的配置。虽然整个过程简单说无非就是读取配置文件,但还是来简单分析一下内部是如何进行处理的。看一下JobConf这个类的继承关系
public class JobConf extends Configuration {
    public JobConf(Class exampleClass) {
        setJarByClass(exampleClass);
  }
………
}

        我们一般调用的就是上面的这个构造函数,由于没有指明父构造器的类型,所以在new JobConf的时候会调用父类的默认构造器。那么下面来看一下Configuration这个类。
public class Configuration implements Iterable<Map.Entry<String,String>>, Writable {
  private static final Log LOG = LogFactory.getLog(Configuration.class);

  //从参数名
  private boolean quietmode = true;
  
  //配置列表
  private ArrayList<Object> resources = new ArrayList<Object>();

  //最终配置列表
  private Set<String> finalParameters = new HashSet<String>();

  //
  private Properties properties;
  private Properties overlay;
  private ClassLoader classLoader;
  {
    classLoader = Thread.currentThread().getContextClassLoader();
    if (classLoader == null) {
      classLoader = Configuration.class.getClassLoader();
    }
  }
  
  /** A new configuration. */
  public Configuration() {
    this(true);
  }

  /** A new configuration where the behavior of reading from the default 
   * resources can be turned off.
   * 
   * If the parameter {@code loadDefaults} is false, the new instance
   * will not load resources from the default files. 
   * @param loadDefaults specifies whether to load from the default files
   */
  public Configuration(boolean loadDefaults) {
    if (LOG.isDebugEnabled()) {
      LOG.debug(StringUtils.stringifyException(new IOException("config()")));
    }
    if (loadDefaults) {
      resources.add("hadoop-default.xml");
      resources.add("hadoop-site.xml");
    }
  }


暂停……待续
分享到:
评论

相关推荐

    java简析stdf文件

    ### Java简析STDF文件 #### 引言与背景 随着半导体行业的快速发展,测试数据的标准化变得尤为重要。在这一背景下,STDF(Standard Test Data Format)作为一种被广泛接受的标准格式应运而生。它旨在提高不同制造商...

    Django框架架构简析.pdf

    Django的URLconf(URL configuration)系统允许开发者定义URL模式,并将它们映射到相应的视图函数。这样,URL结构与视图的实现完全分离,增强了代码的可维护性。 5. 自带管理后台: Django提供了一个内置的管理...

    无线WPS协议简介

    无线WPS协议简介 WPS(Wi-Fi Protected Setup)是一种无线网络协议,旨在为普通用户提供一个统一的简单的方法来安全配置无线网络。WPS 协议于 2007 年由 Wi-Fi 联盟发布,旨在解决无线网络配置复杂的问题。...

    Ranorex入门指南

    Ranorex入门指南36 – 测试用例启动过程简析 Ranorex入门指南37 – 单独运行编译的exe文件 Ranorex入门指南38 – 设置对象查找超时时间 Ranorex入门指南39 – 用Validate进行简单验证 Ranorex入门指南40 – 引用其他...

    Oracl技术资料(EBook)

    电子版的Oracl技术资料 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二...45.使用Database Configuration Assistant安装第二个数据库 46.Oracle 数据库向 MS SQL Server 7.0 的迁移

    61850模型及报文分析[汇编].pdf

    - **ICD/CID文件结构**:IED配置描述文件(ICD)包含了所有IED的模型信息,而CID(Configuration Instance Data)文件是根据ICD定制的,用于具体站点的配置。ICD包含逻辑设备(LD)、逻辑节点(LN)、数据对象(DO...

    dom4j参考资料

    Element root = document.addElement("configuration"); // 继续添加元素和属性... } ``` 这段代码展示了如何使用DOM4j从零开始构建一个XML文档,包括设置文档类型(DocType)、添加根元素以及后续元素和属性的...

    BIOS中禁用二级缓存

    在BIOS设置中寻找与CPU相关的选项,如“Advanced Chipset Features”或“CPU Configuration”。在这些选项中,可以找到“L2 Cache”或“Level 2 Cache”的设置,将其更改为“Disabled”即可禁用二级缓存。 值得注意...

    Oracle数据库学习指南

    45.使用Database Configuration Assistant安装第二个数据库 46.Oracle 数据库向 MS SQL Server 7.0 的迁移 Oracle1: 1. Decode()函数使用技巧(NT+IIS+ASP+ORACLE) 2. Dual伪列 3. EXP、IMP 命令详解 4. ...

    JAVAEE期中考试试题JAVAEE期中考试试题JAVAEE期中考试试题

    - **配置类**:使用`@Configuration`和`@EnableAutoConfiguration`等注解定义配置类,实现自动配置功能。 - **默认配置文件**:Spring Boot会自动加载一些默认的配置文件,如`application.properties`或`application...

Global site tag (gtag.js) - Google Analytics