Hadoop没有使用java语言的管理配置文件,也没有使用Apache管理配置文件,而是使用了一套独有的配置文件管理系统,并提供自己的API。以XML文档格式进行配置,使用相应的配置文件类读取,并配置集群的运行。
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cloud01:9000</value>
<description>定义默认的文件系统主机和端口</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<final>4096</final>
<description>流文件的缓冲区为4K</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hduser/tmp</value>
<description>Abase forother temporary directories.</description>
</property>
</configuration>
在Hadoop配置文件的根元素configuration,一般只包含子元素property。每一个property元素就是一个配置项,配置文件不支持分层或分级。
每个配置项一般包括配置属性 名称 name、值value和一个关于配置项的描述description。元素final和Java中的关键字final类似,意味着这个配置项是“固定不变的”。final一般不出现,但在合并资源的时候,可以防止配置项的值被覆盖。
在configuration中每个属性都是string类型的,值类型可能是以下多种类型包括java中的基本类型,如boolean、int、long、float也可以是其他类型,如String、File、数组等。以上面的配置文件为例,定义了三个集群的参数,分别是集群主机和端口、流文件的缓冲区大小,临时文件存放位置,只有流文件此配置项是int型,而另两个配置项是字符串型。