Hqdoop中的组件是通过Hadoop自己的配置API来配置的。一个Configuration类的实例(可以在org.apache.hadoop.conf/包中找到)代表配置属性及其取值的一个集合。每个属性由一个String来命名,而值的类型可以是多种类型之一,包括Java基本类型(如boolean、int、long•和float)和其他有用的类型(如String、Class、java.io.File和String
集合)。
Configuration从资源——(即使用简单结构定义名-值对的XML文件)中
读取其属性值。参见范例5-1。
范例5-1.—个简单的配置文件configuration-1.xml
<?xml version="l.0"?>
<configuration>
<property>
<name>color</name>
<value>yellow</value>
<description>Color</description>
</property>
<property>
<name>size</name>
<value>10</value>
<description>Size</description>
</property>
<property>
<name>weight</name>
<value>heavy</value>
<final>true</final>
<description>Weight</description〉
</property>
<property>
<name〉size-weight</name>
<value>${size},${weight}</value〉
<description>Size and weight</description>
</property>
〈/configuration〉
假定此配置文件位于文件中,我们可以通过如下代码访问其属性:
Configuration
conf=new Configuration(); conf.addResource("configuration-1.xml");
assertThat(conf.get("color"), is("yellow"));
assertThat(conf.getlnt("size", 0), is(10));
assertThat(conf.get("breadth"j "wide"), is("wide"));
有这样几点需要注意:XML文件中不保存类型信息;取而代之的是属性在被读取的时候,可以被解释为指定的类型;此外,get()方法允许为XML文件中没有定义的属性指定默认值,正如这一代码中最后一行的breadth属性一样。
转载请注明:全栈大数据 » 5.1. 用于配置的API