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

Hadoop技术内幕HDFS-笔记2

时间:2014-07-16 23:31:06      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:des   style   java   color   使用   文件   

任何一个复杂的软件系统,为了提高其适应性和扩展性,一般都会有一个配置模块或者配置系统,作完成其扩展、定制的手段和方式。

1.1.  Windows的配置文件

(第一次知道这事啊):

采用的是ini后缀的文本文件,可通过动态链接库提供方法进行处理。

初始化文件或profile概要文件

1.2.  Java配置文件:

         Properties文件

         Xml文件

         工具:Apache Commons Configuration 用于对配置文件进行常用的操作。

Hadoop configuration

         Hadoop 使用Configuration类管理自己的配置文件

         Hadoop配置文件的根元素是configuration,只包含子元素property,每一个property都是一个配置项,具有配置属性name,value,description 和final(意味着这个配置项是“固定不变的”,在合并资源的时候,可以防止配置项的值被覆盖)

         每一个属性名都是String类型的,值的类型可以有多重,boolean(getBoolean) int(getInt) long (getLong) float (getFloat) String (get) File (getFile) String数组 (getStrings,其中值是以逗号进行分割的)

         合并资源:

         Configuration conf = new Configuration()

         Conf.addResource(“core-default.xml”);

         Conf.addResource(“core-site.xml”);

         若配置项没有标记为final则后面的配置将覆盖前面的配置,如果有final,在进行覆盖时会有警告。

         属性扩展:

         Dfs.name.dir的值为$(hadoop.tmp.dir)/dfs/name,其中$(dfs.name.dir)就是conf中相应属性的值。

         Configuration类的成员变量

                   quietmode为true时,默认值,在加载解析配置文件时 ,不输出日志信息。

                   数组resources保存了所有通过addResource添加的configuration对象的资源

                   boolean型的loadDefaults是否加载默认资源,默认资源保存在defaultResources中,通过addDefaultResource可以添加系统的默认资源。在HDFS中,将hdfs-default.xml和hdfs-site.xml作为默认资源,mr中,将mapred-default.xml和mapred-site.xml作为默认的资源。

         如在hdfs的DataNode这个类(数据节点)中具有静态块

         static{

                   Configuration.addDefaultResource(“hdfs-default.xml”);

                   Configuration.addDefaultResource(“hdfs-site.xml”);

}

properties有所有解析后的键值对

overlay记录的是应用通过set方法设置的配置项(覆盖或者不覆盖)

finalParameters,所有声明为final的配置项

通过类加载器,可以加载classpath路径下的资源,

URL classLoader.getResource(“name”);这些资源可以是任何类型。图片、图像,文件等,返回读取的URL对象

加载文件:通过延迟加载的方式,当真正需要数据的时候,才开始加载分析配置文件

xml解析形式:

sax:提供了一种流式的、事件驱动的xml处理方式,但编写处理逻辑比较复杂,适合处理大的xml文件

dom:不同,首先将文件加载入内存,形成一个树形结构,文档对象模型。hadoop的配置文件不是很大,因此采用dom处理xml(自行查找资料)

Configuration的loadResouce类(里面有加载的代码)。

public String get(name,defaultValue);可以得到任意的配置属性值

属性扩展:使用正则表达式:“\$\{[^\]\$ ]+\}”,对${}三个字符进行转义,同时[^]匹配除了里面的值以外的所有字符。+出现次数大于1

Configurable接口,实现了此接口,意味着这个类是可以进行配置的,即可以给他传入系统的conf实例。从而此类可以获取conf中对自己有用的配置信息。

setConf(Configuration)和getConf()

何时调用setConf呢,利用反射机制,可使用ReflectionUtils类中的setConf方法配置对象。if(obj instanceof Configrable)此类是否实现了Configurable接口

 

Hadoop技术内幕HDFS-笔记2,布布扣,bubuko.com

Hadoop技术内幕HDFS-笔记2

标签:des   style   java   color   使用   文件   

原文地址:http://www.cnblogs.com/jsunday/p/3811226.html

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