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 文件。

  • 相关阅读:
    Axis2发布Webservice进行身份校验
    Spring集成Axis2
    分布式事务解决方案之TCC
    Lua 数据类型
    Lua 基本语法(1)
    Axis发布Webservice服务
    Linux中NFS服务器搭建
    SpringBoot多环境切换
    springboot中spring.profiles.include的妙用
    oracle树形语句
  • 原文地址:https://www.cnblogs.com/echomyecho/p/3220916.html
Copyright © 2011-2022 走看看