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

  • 相关阅读:
    洛谷 P1653 猴子 解题报告
    洛谷 P2024 [NOI2001]食物链 解题报告
    洛谷 P1966 火柴排队 解题报告
    洛谷 P1311 选择客栈 解题报告
    洛谷 P3959 宝藏 解题报告
    二进制枚举子集技巧
    洛谷 P1841 [JSOI2007]重要的城市 解题报告
    洛谷 P2324 [SCOI2005]骑士精神 解题报告
    vector-size
    ubuntu 更换软件源
  • 原文地址:https://www.cnblogs.com/echomyecho/p/3220916.html
Copyright © 2011-2022 走看看