Hadoop Conguration详解:
本文着重讲述Hadoop配置模块的基础类:org.apache.hadoop.conf.Configuration。
Java配置文件
JDK本身提供了java.util.Properties类,用户处理简单的配置文件。Properties类,它是继承自Hashtable,表示一个持久的属性集,该集可保存在流中,或者从流中加载。属性列表中的每个键及其对应值都是字符串类型。下面是Properties提供的几个主要的方法。
//从流中加载属性
public void load(InputStrem inStream)
//从一个Reader中加载属性
public void load(Reader reader)
//从一个XML文件流中加载属性
public void loadFromXML(InputStrem in)
//根据指定的Key在属性列表中查找属性
public String getProperty(String Key)
//根据指定的Key在属性列表中查找属性,如果没有则用给定的默认值
public String getProperty(String key,String defaultValue)
//同步方法,给属性列表添加值,最终调用Hashtable的方法put
public synchronized Object setProperty(String key,String value)
从以上的API中,我们可以实现一个简单的配置文件。
Hadoop配置文件
Hadoop没有使用Java本身提供的java.util.Properties管理配置文件,它使用一套独有的配置文件管理系统,并提供API。既使用org.apache.hadoop.conf.Configuration处理配置信息。下面摘录一段Hadoop的配置信息如下:
fs.default.name
hdfs://node1:49000
hadoop.tmp.dir
/home/hadoop/hadoop_home/var
从以上的配置中,我们不难发现Hadoop配置文件的根元素是configuration,一般只包含子元素property。每一个property元素就是一个配置项,配置文件不支持分层或分级。没个配置项一般包括配置属性的名称name、值value和一个关于配置项的描述description。
在Configuration中,每个元素都是String类型的,但是值类型基本上包括Java的基本类型。
Configuration的成员
//configuration的成员
boolean quietmode;
ArrayList