《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》第2章Hadoop配置信息处理,本章从Windows和基于Java
Properties配置文件开始,分析了Hadoop使用的基于健–值对构成的、结构相对简单的XML配置文件,以及相应的处理类Configuration,特别是Configuration类中的资源加载、资源合并和属性扩展等比较重要的处理过程。本节为配置文件简介。
第二部分 Common的实现
本部分内容
Hadoop配置信息处理
序列化与压缩
Hadoop远程过程调用
Hadoop文件系统
第2章 Hadoop配置信息处理
任何一个复杂的软件系统,为了提高其适应性和扩展性,一般都会有一个配置模块或配置系统,作为其扩展、定制的手段和方式。Hadoop使用配置文件将系统中的重要属性以文件的形式进行持久化,使得这些属性可以被重启后的进程或者不同的进程使用。
2.1 配置文件简介
配置文件是一个灵活系统不可缺少的一部分,虽然配置文件非常重要,但却没有标准。本节我们来了解Windows操作系统和Java环境中的配置文件。
2.1.1 Windows操作系统的配置文件
Windows系统广泛使用一种特殊化的ASCII文件(以“ini”为文件扩展名)作为它的主要配置文件标准。下面是INI文件的片段:
- ;最后修改时间:2012.10.12
- [owner]
-
name=JohnDoe
-
organization=AcmeWidgetsInc.
- [database]
-
server=192.0.2.62;使用IP地址,在域名解析不能使用时还能正常工作
-
port=143
-
file="payroll.dat"
- [ftp]
该文件也称为初始化文件(Initialization File,它的扩展名就是initialization的前三个字母)或概要文件(profile),应用程序可以拥有自己的配置文件,存储应用的设置信息,也可以访问Windows的基本系统配置文件win.ini中存储的配置信息。INI文件将配置信息分为“节”,节标题放在方括号中。如上面例子中的[database],就是database节的节标题。节用于对配置数据做一个归类,每一个节可以包含一些与之相关的“项”(ENTRY),并通过等号对其进行赋值(VALUE)。一般的形式如下:
- [SECTION]
-
ENTRY=VALUE
其中VALUE值可以有两种类型:数型或字符串。上面给出的INI文件片段中,database节中包含3个项,分别是server、port和file。其中,配置项port可以以数型的形式读取。
INI文件中的注释以分号开始,到行尾结束。
Windows操作系统同时还提供了一些API,用来对配置文件进行读、写。如使用GetProfileString()函数可以从配置文件win.ini中获取字符串型配置,使用GetPrivateProfileInt()函数可以从私有的配置文件中读取一个配置整数型项。该函数的原型如下:
- UINTWINAPIGetPrivateProfileInt(
- __inLPCTSTRlpAppName,
- __inLPCTSTRlpKeyName,
- __inINTnDefault,
- __inLPCTSTRlpFileName
- );
其中,参数LPCTSTR lpFileName是INI文件的文件名,LPCTSTR lpAppName和LPCTSTR lpKeyName分别是上述的“节”和“项”,INT nDefault是默认值,也就是说,如果在配置文件中找不到配置信息,就返回该默认值。
2.1.2 Java配置文件
JDK提供了java.util.Properties类,用于处理简单的配置文件。Properties很早就被引入到Java的类库中,并且一直没有什么变化。它继承自Hashtable,如图2-1所示,表示了一个持久的属性集,该集可保存在流中或从流中加载。属性列表中每个键及其对应值都是字符串类型。
相对于INI文件,Properties处理的配置文件格式非常简单,它只支持键–值对,等号“=”左边为键,右边为值。形式如下:
- ENTRY=VALUE
由于Properties基于Hashtable,它并不能支持INI文件中的“节”,对配置项进行分类。
java.util.Properties中用于处理属性列表的主要方法如下,其中,getProperty()用于在属性列表中获取指定键(参数key)对应的属性,它有两个形式,一个不提供默认值,另一个可以提供默认值。Properties.setProperty()用于在属性列表中设置/更新属性值。相关代码如下:
- //用指定的键在此属性列表中搜索属性
- publicStringgetProperty(Stringkey)
- //功能同上,参数defaultValue提供了默认值
- publicStringgetProperty(Stringkey,StringdefaultValue)
- //最终调用Hashtable的方法put
- publicsynchronizedObjectsetProperty(Stringkey,Stringvalue)
Properties中的属性通过load()方法加载,该方法从输入流中读取键–值对,而store()方法则将Properties表中的属性列表写入输出流。使用输入流和输出流,Properties对象不但可以保存在文件中,而且还可以保存在其他支持流的系统中,如Web服务器。J2SE 1.5版本以后,Properties中的数据也可以以XML格式保存,对应的加载和写出方法是loadFromXML()和storeToXML()。
下面是以XML格式存在的Properties配置文件的例子。
- <?xml?version="1.0"?encoding="UTF-8"?>
- <!DOCTYPE?properties?SYSTEM
-
"http://java.sun.com/dtd/properties.dtd">
-
<properties>
-
<comment>Hi</comment>
-
<entry?key="foo">bar</entry>
-
<entry?key="fu">baz</entry>
-
</properties>
由于java.util.Properties提供的能力有限,Java社区中出现了大量的配置信息读/写方案,其中比较有名的是Apache Jakarta Commons工具集中提供的Commons Configuration。Commons Configuration中的PropertiesConfiguration类提供了丰富的访问配置参数的方法。Commons Configuration支持文本、XML配置文件格式;支持加载多个配置文件;支持分层或多级的配置;同时提供对单值或多值配置参数的基于类型的访问。应该说,Commons
Configuration是一个功能强大的配置文件处理工具。
分享到:
相关推荐
第二章(Hadoop大数据处理实战)搭建Hadoop分布式集群.pdf第二章(Hadoop大数据处理实战)搭建Hadoop分布式集群.pdf第二章(Hadoop大数据处理实战)搭建Hadoop分布式集群.pdf第二章(Hadoop大数据处理实战)搭建Hadoop分布式...
【大数据运维技术第4章 Hadoop文件参数配置】 在大数据领域,Hadoop是一个核心的开源框架,主要用于处理和存储大规模数据。本章主要探讨的是Hadoop的文件参数配置,这对于确保Hadoop集群的稳定运行至关重要。以下是...
本章节将指导读者如何配置 Hadoop 文件参数,实现 Hadoop 集群的高效运行。 1. 实验目的 本实验的目的是掌握 Hadoop 文件参数的配置,包括 Hadoop 的安装、配置文件的参数意义、Hadoop 集群的配置等方面。通过本...
hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件
了解这些配置文件是实施和优化Hadoop集群的重要部分。核心配置文件core-site.xml涉及整个Hadoop环境的设置,而hdfs-site.xml和mapred-site.xml则针对Hadoop分布式文件系统(HDFS)和MapReduce计算框架进行局部配置。 ...
2. **yarn-default.xml**:这个文件包含了YARN的相关配置,YARN是Hadoop的资源管理系统,负责调度计算资源,如内存、CPU。关键参数包括`yarn.nodemanager.resource.memory-mb`(定义每个节点的可用内存)、`yarn....
Hadoop云计算平台搭建方案2.1.doc
这篇博客“Hadoop配置文件表”虽然没有提供详细的描述,但从标题我们可以推断,它可能包含了关于Hadoop系统中各种配置文件的详细信息。这些配置文件对于理解和优化Hadoop集群的性能至关重要。 Hadoop的核心组件主要...
2. **下载Hadoop**:从Apache官网下载Hadoop 2.2.0的二进制包,解压到你选择的目录,例如`/usr/local/hadoop`。 3. **配置环境变量**:在`~/.bashrc`或`~/.bash_profile`中添加Hadoop的环境变量,包括`HADOOP_HOME`...
4. `yarn-site.xml`: YARN(Yet Another Resource Negotiator)是Hadoop的第二代资源管理系统,它负责调度计算资源。`yarn-site.xml`中的`yarn.resourcemanager.address`、`yarn.resourcemanager.scheduler.address`...
Hadoop 2.2.0 是 Apache Hadoop 的一个关键版本,它包含了众多改进和优化,使得这个分布式计算框架在处理大数据集时更加高效和稳定。在这个配置文件中,我们将会探讨Hadoop 2.2.0 在4台CentOS 6.4系统上运行所需的...
这个压缩包"**HADOOP配置文件-有注释版.rar**"包含了Hadoop的配置文件,并且带有注释,这对于理解和配置Hadoop环境至关重要。下面我们将详细探讨Hadoop的配置体系以及这些配置文件中的关键知识点。 首先,Hadoop的...
1. `core-site.xml`:这个文件主要用于设置Hadoop的核心参数,如命名空间(namespace)的默认值、文件系统的默认实现、I/O操作的相关配置等。例如,`fs.defaultFS`属性指定默认的文件系统,通常是HDFS的URL;`io....
在Hadoop生态系统中,配置文件是管理和优化集群性能的关键元素。本文将深入解析Hadoop的常用配置,包括HDFS(Hadoop Distributed File System)和MapReduce的端口配置,以及一些核心的默认配置参数。 首先,让我们...
在安装Hadoop 2.8.2时,正确配置这四个文件是启动和运行Hadoop集群的第一步。配置过程需要根据实际的硬件资源、网络环境和业务需求进行调整,以实现最佳性能和可靠性。在配置完成后,确保所有节点的配置文件一致,...
第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件...
本配置文件集合包含了运行Hadoop 2.x集群所需的关键组件设置,如HDFS、YARN和MapReduce。现在我们将详细讲解每个配置文件的作用及其重要性。 1. **hadoop-env.sh**: 这个文件是Hadoop环境变量的配置,主要设置JVM...