整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

5.1.1 资源合并

hadoop 小红牛 7℃ 0评论

使用多个资源文件来定义一个配置时,事情变得有趣了。在Hadoop中,这用于分离(core-default.xml文件内部定义的)系统默认属性与(core-site.xml文件中定义的)位置相关(site-specific)的覆盖属性。范例5-2中的文件定义了size属性和weight属性。

范例5-2.第二个配置文件configuration-2.xml

<?xml version="l.0"?>

<configuration>

<property>

<name>size</name>

<value>12</value

</property>

<property>

<name>weight</name>

<value>light</value>

</property>

</configuration>

资源文件按顺序添加到Configuration:

Configuration conf = new Configuration(); conf.addResource("configuration-1.xml"); conf.addResource("configuration-2.xml");

后来添加到资源文件的属性会覆盖(override)之前定义的属性。所以size属性的取值来自于第二个配置文件

assertThat(conf.getlnt("size",0), is(12));

不过,被标记为final的属性不能被后面的定义所覆盖。在第一个配置文件中,weight属性的final状态是true,因此,第二个配置文件中的覆盖设置失败,weight取值仍然是第一个配置文件中的heavy:

assertThat(conf.get ("weight"), is("heavy"));

试图覆盖final属性的操作通常意味着配置错误,所以最后会弹出警告消息来帮助进行故障诊断。一般来说,管理员将守护进程站点中的属性标记为final,表明他们不希望用户在客户端的配置文件或作业提交参数(job submission parameter)中有任何改动。

转载请注明:全栈大数据 » 5.1.1 资源合并

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址