Configuration做为Hadoop的一个基础功能承担着重要的责任,为Yarn、HSFS、MapReduce、NFS、调度器等提供参数的配置、配置文件的分布式传输(实现了Writable接口)等重要功能。
Configuration是hadoop中五大组件的公用类,所以放在了core下,org.apache.hadoop.conf.Configruration。这个类是作业的配置信息类,任何作用的配置信息必须通过Configuration传递,因为通过Configuration可以实现在多个mapper和多个reducer任务之间共享信息。
Hadoop的加载配置文件的功能没有采用Java自己的 java.util.Properties,也没有采用Apache Jakarta Commons中的Commons Configuration,而是自己单独实现了一个自己的Configuration类:org.apache.hadoop.conf.Configuration,在hadoop-common-project子工程中。它的实现子类有:HdfsConfiguration、YarnConfiguration、JobConf、NfsConfiguration、FairSchedulerConfiguration等。
@Test
public void test() {
//加载默认配置
Configuration conf = new Configuration(true);
conf.set("path", "file://hehe");
conf.setInt("data", 10);
conf.setInt("data", 20);//此参数将更改属性中相同的参数值
System.out.println(conf.get("test"));//没有这个属性,返回的是 null
System.out.println(conf.get("path"));//file://hehe
System.out.println(conf.get("data"));//20
}