Hadoop技术内幕HDFS-笔记2

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

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

时间: 2024-10-23 11:28:53

Hadoop技术内幕HDFS-笔记2的相关文章

2本Hadoop技术内幕电子书百度网盘下载:深入理解MapReduce架构设计与实现原理、深入解析Hadoop Common和HDFS架构设计与实现原理

这是我收集的两本关于Hadoop的书,高清PDF版,在此和大家分享: 1.<Hadoop技术内幕:深入理解MapReduce架构设计与实现原理>董西成 著  机械工业出版社2013年5月出版 2.<Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理>蔡斌.陈湘萍 著  机械工业出版社2013年4月出版 百度网盘下载地址: http://pan.baidu.com/s/1sjNmkFj

Hadoop技术内幕HDFS-笔记11之HDFS

Hdfs文件系统,提供了一套基于hadoop的抽象文件系统的API,支持以流的方式访问文件系统中的数据. 特性: 1.  支持超大文件 2.  检测和快速应对硬件故障(故障检测和自动恢复) 3.  流式数据访问,注重的是数据的吞吐量,而不是数据的响应速度 4.  简化的一致性模型,一次写入,多次读取. 不适合: 5.  低延迟数据访问,和用户的实时交互,由于hadoop对高数据吞吐量进行了优化,而牺牲了数据的延迟,对于低延迟访问,可以考虑hbase或cassandra 1.1.1.       

Hadoop技术内幕HDFS-笔记1

书籍学习——董西成<Hadoop技术内幕 深入解析HADOOP COMMON和HDFS架构设计与实现原理> HDFS 高容错,高伸缩性 Lucene是引擎开发包,提供了一个纯java的高性能全文检索,可方便的嵌入到各种应用中实现全文搜索/索引功能. Nutch是以Lucene为基础实现的搜索引擎应用,Lucene为Nutch提供了文本搜索和索引的Api,Nutch不光有搜索功能,还有数据抓取的功能,却无法支持拥有数亿网页的网络(在网络抓取和索引过程中产生的大量文件存储需求). Hadoop优势

Hadoop技术内幕HDFS-笔记10之hadoop IO

1.1.1. hadoop IO 对比Java IO即可 FSDataInputStream,FSDataOutputStream 为抽象类, FSInputStream抽象类 1.1.2. hadoop文件系统中的权限 枚举类FsAction定义了rwx权限,常量 建议使用get()方法获取文件系统对象,而不是newInstance() 1.1.3. hadoop 协议处理器(会用即可) 获取HDFS上的资源,必须安装协议处理系统 后面通过获取的in IO流操作就是普通的操作形式了. Hado

Hadoop技术内幕:深入解析YARN架构设计与实现原理pdf

下载地址:网盘下载 <Hadoop技术内幕:深入解析MapReduce架构设计与实现原理>内容简介:"Hadoop技术内幕"共两册,分别从源代码的角度对"Common+HDFS"和"MapReduce的架构设计和实现原理"进行了极为详细的分析.<Hadoop技术内幕:深入解析MapReduce架构设计与实现原理>由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入

hadoop技术内幕-序列化与压缩(一)

一.java内建序列化机制 java序列化机制将对象转换为连续的byte数据,这些数据可以在日后还原为原先的对象状态,还能自动处理不同操作系统上的差异,也不用担心字节排列次序. java的类实例可被序列化只要在类声明中加入implements Serializable即可.Serializable接口是一个标志,不具有任何成员函数. java的序列化会自动访问对象的父类,以保证对象内容的一致性.序列化的结果中包含了大量与类相关的信息(包括版本号.类描述信息.类的版本ID.父类等).在这个过程中序

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

配置系统是复杂软件必不可少的一部分,org.apache.hadoop.conf.Configuration在Hadooop各个子项目中发挥着重要作用. windows系统广泛使用一种特殊批的ASCII文件.ini作为其主要配置文件标准,被称为(Initialization File)或概要文件(profile):java中JDK提供了java.util.Properties类处理简单的配置文件.而Hadoop采用自己独有的配置文件管理系统. Hadoop的配置文件的根元素是configurat

【转】COM技术内幕(笔记)

COM技术内幕(笔记) COM--到底是什么?--COM标准的要点介绍,它被设计用来解决什么问题?基本元素的定义--COM术语以及这些术语的含义.使用和处理COM对象--如何创建.使用和销毁COM对象.基本接口--描述IUnknown基本接口及其方法. 掌握串的处理--在COM代码中如何处理串.应用COM技术--例子代码,举例说明本文所讨论的所有概念. 处理HRESULT--HRESULT类型描述,如何监测错误及成功代码.COM--到底是什么? 简单地说,COM是一种跨应用和语言共享二进制代码的

Hadoop技术内幕HDFS-笔记5之动态代理

1.1.  java动态代理 java.lang.reflect包下的Proxy(创建代理对象)和InvocationHandler(调用转发)两个类 代理对象代表目标对象(target)执行相应的活动 静态代理:代理对象实现目标对象一致的接口,实现代理接口和调用转发 (不推荐使用) 在调用前后的附加逻辑,体现了代理对象的价值 代码示例: 1. java动态代理接口 package proxy; public interface BookDAO { //增加图书的实现 public void a