zoukankan      html  css  js  c++  java
  • Hadoop configration类分析

    configration这个类是分析hadoop源代码一个很好地入口。

    先从需求说起。对于一个大型的文件系统,基于配置文件可以增强灵活性。congfigration类就是为了管理配置文件的。

    配置文件的一个一对对的KV对。 所以configration类的核心是用了hashmape存储了KV对。

    先放上类图

    所以configration类核心在于加载资源和解析资源。

    举一个例子来解析。

    Configuration conf = new Configuration();
     conf.addResource("core-default.xml");

      用这种默认的字符串方式加载资源实际上市加载的  代码路径下的资源.

    resources.add(resource);  
      private ArrayList<Object> resources = new ArrayList<Object>();

    可以看到addResource方法其实没有开始加载XML 文件,只是先把资源文件放在了一个数组里。

    真正加载文件 在调用的时候 看代码

    conf.get("fs.hsftp.impl")
    public String get(String name) {
        return substituteVars(getProps().getProperty(name));
      }
    private synchronized Properties getProps() {
        if (properties == null) {
          properties = new Properties();
          loadResources(properties, resources, quietmode);
    else if (name instanceof String) {        // a CLASSPATH resource
            URL url = getResource((String)name);
            if (url != null) {
              if (!quiet) {
                LOG.info("parsing " + url);
              }
              doc = builder.parse(url.toString());

    这里面有了Dom解析的方式解析了XML 文件。

  • 相关阅读:
    HDU 4870 Rating(高斯消元 )
    iOS开发者账号详细介绍
    iOS之Block
    CocoaPods 安装和使用
    搭建自己的局域网服务器
    MarkDown语法收集
    正则表达式参考表
    iOS企业级应用打包与部署
    iOS开发之代码加载方式进入APP的界面
    shell脚本小Demo
  • 原文地址:https://www.cnblogs.com/echomyecho/p/3220916.html
Copyright © 2011-2022 走看看