码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop技术内幕——Hadoop配置信息处理

时间:2014-06-24 09:11:43      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:class   java   get   使用   文件   数据   

  配置系统是复杂软件必不可少的一部分,org.apache.hadoop.conf.Configuration在Hadooop各个子项目中发挥着重要作用。

  windows系统广泛使用一种特殊批的ASCII文件.ini作为其主要配置文件标准,被称为(Initialization File)或概要文件(profile);java中JDK提供了java.util.Properties类处理简单的配置文件。而Hadoop采用自己独有的配置文件管理系统。

  Hadoop的配置文件的根元素是configuration,一般只包含子元素property,每个property元素就是一个配置项,配置文件不支持分层或分级。在configuration中,每个属性都是String类型,值类型可以是多种类型。

  合并资源指交将多个配置文件合并,通过loadResources()方法实现的。如果两个配置资源包含了相同的配置项,而且前一个没有标记为final,那么后面的配置将覆盖前面的配置。

  hadoop系统还有一个重要 功能 ,就是支持属性扩展。如dfs.name.dir的值为${hadoop,tmp.dir}/dfs/name。其中${hadoop,tmp.dir}会使用Configuration中的相应属性进行扩展。

  使用Configuration类的一般过程是:构造Configuration对象 ,并通过类的addResource()方法添加需要加载的资源;然后就可以使用get*方法和set*方法访问/设置配置项,资源会在第一次使用的时候自动加载到对象中。

  Configuration的成员变量包括:

  (1)-quietmode:boolean,用来设置加载配置的模式。默认true,在加载解析配置文件的过程中,不输出日志信息。

  (2)-loadDefaults:boolean,服务业确定是否加载默认资源,这些资源保存在defaultResources中。

  (3)-defaultResources:ArrayList<String>,是个静态成员变量,通过方法addDefaultResource()可以添加系统的默认资源。

  (4)-resources:ArrayList<Object>,保存所有通过 addResource()方法添加Configuration对象的资源。

  (5)-properties:Properties,Hadoop配置文件解析后的键-值对都存放在properties中。

  (6)-finalParameters:Set<String>,用来保存所有配置文件中已经被声明为final的键-值对的键。

  (7)-overlay:Properties,用来记录通过set()方式改变的配置项,即,是应用设置的,不是通过配置资源解析得到的。

  (8)-classLoader:ClassLoader,是一个类加载器变量,可以用来加载指定类,也可以是相关的资源。

  资源通过对象的addResource()方法或类的静态addDefaultResource()方法添加到了Configuration对象中,添加的资源并不会立即被加载,只是通过 reloadConfiguration()方法清空properties和finalParameters。静态方法addDefaultResource()通过 静态成员REGISTRY来清空Configuration对象中的数据。

  Hadoop的配置文件都是古非今XML形式,JAXP(java API for XML Processing)是一种稳定、可靠的XML处理API,支持SAX(simple API for XML)和DOM两种XML处理方法。SAX提供一种流式的、事件驱动的XML处理方式,但编写处理逻辑比较复杂,比较适合处理大的XML文件。DOM是首先将XML文档一次性装入内存;然后根据文档中定义的元素和属性在中建立一个“树形结构”,也就是一个文档对象模型,将文档对象 化,文档中每个节点对应着模型中一个对象;然后 使用对象 提供 的编程接口,访问XML文档进行操作XML文档。

  Configurable是一个简单的接口,如果一个类实现了它,意味着这个类是可配置的。即可通过 为这个类的对象传入一个Configuration实例,来提供对象工作需要的一些配置信息。

  

Hadoop技术内幕——Hadoop配置信息处理,布布扣,bubuko.com

Hadoop技术内幕——Hadoop配置信息处理

标签:class   java   get   使用   文件   数据   

原文地址:http://www.cnblogs.com/edward-tj/p/3799263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!