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()的區別
總結
以上是生活随笔為你收集整理的hadoop配置文件的加载机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nutch+Hadoop集群搭建
- 下一篇: 搭建hbase-0.94.26集群环境