1. Configuration —— Hadoop的配置API
- 之前,在获取Hadoop文件实例时,经常会创建一个
Configuration
实例
-
Configuration
是Hadoop用于配置的API,是property和value的集合
-
addResource()
:为Configuration指定配置文件。入参为resources中的xml文件名,Configuration
可以从xml文件中获取property和value
-
属性覆盖: 若通过
addResource()
同时指定多个xml文件,同名的property的value,由后面的定义决定
-
例外: 如果该属性为
final
属性,则无法被后续的定义覆盖
-
get()
:根据property,获取value;同时,可以指定默认值,当属性不存在时,则返回指定的默认值
基于Configuration的编程实例
-
config-1.xml
文件如下:
<?xml version="1.0"?>
<configuration>
<property>
<name>color</name>
<value>red</value>
</property>
<property>
<name>length</name>
<value>25</value>
</property>
<!-- final属性,无法覆盖-->
<property>
<name>weight</name>
<value>60</value>
<final>true</final>
</property>
</configuration>
-
config-2.xml
文件:
<?xml version="1.0"?>
<configuration>
<property>
<name>time</name>
<value>2021-05-02 08:23:22</value>
</property>
<property>
<name>length</name>
<value>12</value>
</property>
<property>
<name>weight</name>
<value>32</value>
</property>
</configuration>
-
程序示例:
public class ConfigurationTest {
public static void main(String[] args) {
// 添加配置文件
Configuration configuration = new Configuration();
configuration.addResource("config-1.xml");
configuration.addResource("config-2.xml");
// 获取配置文件中的属性
System.out.println("color: " + configuration.get("color"));
// 属性被覆盖
System.out.println("length: " + configuration.getInt("length", 0));
// 属性为final,不能被覆盖
System.out.println("weight: " + configuration.get("weight"));
System.out.println("time: " + configuration.get("time"));
// 属性不存在,返回默认值
System.out.println("company: " + configuration.get("company", "intel"));
}
}
-
程序运行结果:
2. 开发环境的配置
2.1 默认配置的查看
- 在安装Hadoop时,总是需要配置各种各样的文件,如core-site.xml、hdfs-site.xml、yarn-site.xml等
- 这些配置文件,可以配置的属性和默认值,查看方式:
① 可以在安装包的share/doc
中查看,例如core-site.xml对应core-default.xml
② 可以在官网的Configuration部分,将版本号改为对应的值即可
- 同时,不同版本的Hadoop属性,其名称可能有变化,例如MR属性:
mapred
的前缀,已更新为mapreduce
。
2.2 如何连接不同的集群
-
在通过hadoop fs命令,与Hadoop文件系统进行交互时,可以通过-conf
使用不同的配置
-
例如,一般Hadoop集群分为:单机、伪分布式、分布式,各自有不同的属性配置
-
假设本地文件系统的属性配置为hadoop-local.xml
,当想要连接本地文件系统,查看 /user/hadoop/
目录时,命令如下:
hadoop fs -conf conf/hadoop-local.xml -ls /user/hadoop/
-
书中,还介绍了如何通过Tool
、ToolRunner
来修改属性。 —— 自己没啥体会,暂不赘述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)