zoukankan      html  css  js  c++  java
  • hadoop配置文件的加载机制



    hadoop通过Configuration类来保存配置信息
    1、通过Configuration.addResource()来加载配置文件
    2、通过Configuration.get***()来获取配置属性

    1、创建一个新的Configuration实例时,会加载core-default.xml与core-site.xml,若还有其它配置,则调用addResource()继续添加。
    package org.jediael.hadoopdemo;

    import org.apache.hadoop.conf.Configuration;

    public class ConfigurationDemo {
        public static void main(String[] args){
            Configuration conf = new Configuration();
            //conf.addResource("/opt/jediael/hadoop-1.2.1/conf/core-site.xml");
            Configuration.addDefaultResource("mapred-default.xml");
            
            //System.out.println(conf.get("fs.default.name"));
            System.out.println(conf.get("hadoop.tmp.dir"));
            System.out.println(conf.get("io.sort.mb"));
        }
    }
    输出结果为:
    www:Downloads liaoliuqing$ hadoop jar hdemo.jar org.jediael.hadoopdemo.ConfigurationDemo
    hdfs://localhost:9000
    /opt/tmp
    null

    2、可以通过Configuration.addDefaultResource()加载CLASSPATH下的内容,主要用于加载hdfs-default.xml  hdfs-site.xml  mapred-default.xm  mapred-site.xml

    package org.jediael.hadoopdemo;

    import org.apache.hadoop.conf.Configuration;

    public class ConfigurationDemo {
        public static void main(String[] args){
            Configuration conf = new Configuration();
            //conf.addResource("/opt/jediael/hadoop-1.2.1/conf/core-site.xml");
            Configuration.addDefaultResource("mapred-default.xml");
            
            System.out.println(conf.get("fs.default.name"));
            System.out.println(conf.get("hadoop.tmp.dir"));
            System.out.println(conf.get("io.sort.mb"));
        }
    }
    输出结果为:
    www:Downloads liaoliuqing$ hadoop jar hdemo.jar org.jediael.hadoopdemo.ConfigurationDemo
    hdfs://localhost:9000
    /opt/tmp
    100

    若color.xml位于$HADOOP_HOME/conf
    package org.jediael.hadoopdemo;

    import org.apache.hadoop.conf.Configuration;

    public class ConfigurationDemo {
        public static void main(String[] args){
            Configuration conf = new Configuration();
            //conf.addResource("/opt/jediael/hadoop-1.2.1/conf/color.xml");
            Configuration.addDefaultResource("color.xml");
            Configuration.addDefaultResource("mapred-default.xml");
            
            System.out.println(conf.get("fs.default.name"));
            System.out.println(conf.get("hadoop.tmp.dir"));
            System.out.println(conf.get("io.sort.mb"));
            
            System.out.println(conf.get("color"));        
        }
    }
    输出结果为:

    www:Downloads liaoliuqing$ hadoop jar hdemo.jar org.jediael.hadoopdemo.ConfigurationDemo
    hdfs://localhost:9000
    /opt/tmp
    100
    yellow
    若color.xml不位于$HADOOP_HOME/conf,则color的输出值为null。

    3、conf.addResource()与Configuration.addDefaultResource()的区别



  • 相关阅读:
    图文详解AO打印(端桥模式)
    ubuntu svn下载代码出错
    zip error: Invalid command arguments
    秒杀系统设计与实现
    聊聊技术选型
    分布式事务,第三方接口一致性问题
    单系统下的分布式数据库事务方案(拓展spring的事务管理器)AgileBPM多数据的解决方案
    activiti flowable 开源工作流引擎项目整合开发实施实践总结
    java map循环的最优写法(之前写过好多种,这个听说最好记住就行)
    eclipse中maven项目交付svn忽略配置文件(转)
  • 原文地址:https://www.cnblogs.com/jediael/p/4304052.html
Copyright © 2011-2022 走看看