hadoop里面没有用到平时我们在Java中比较常用的properties文件来配置相关信息。 而是通过xml实现了一个简单的参数配置框架。 这里面最核心的类应该是org.apache.hadoop.conf.Configuration
一般我们在安装使用hadoop的时候都需要自定义县官配置, 如core-site.xml, mapred-site.xml 等
一般类说,我们的配置想可能有如下的形式,其实本质上和properties文件的键值对差不多,一个parameter name 对应一个 parameter value
<property> <name>dfs.datanode.address</name> <value>0.0.0.0:50010</value> <final>true<final> <!-- 用于表明相应参数是否允许后续的configuration文件overwrite --> <description> The datanode server address and port for data transfer. If the port is 0 then the server will start on a free port. </description> </property>
我们也可以采用Hadoop的配置框架实现程序中的参数配置,简单的可以如下:
Configuration conf = new Configuration(); conf.addResource("core-default.xml"); conf.addResource("core-site.xml");
然后就可以通过getXXX, setXXX对属性进行操作了, 这里Configuration的addResource重载实现了从不同的位置获取配置文件, 可以参考Configuration源码
hadoop中许多实现了Configurable接口的类都可以接受Configuration对象,在运行时获取相应的配置信息。
最后,更给力的是,configuration中的parameter value还支持变量替换, 变量替换语法类似于以往ant及spring中的常见形式, 类似${ParamName}的形式,hadoop Configuration配置框架可以取得当前JVM的相关参数,如${user.home},其次可以引用已经配置过的参数。但要特别注意不要出现循环引用

浙公网安备 33010602011771号