hadoop 的Configuration 配置的使用。

本文介绍了Hadoop中Configuration类的作用及配置文件core-site.xml和core-default.xml的加载方式。阐述了如何通过String或Path指定资源,并提供了具体的代码示例。
Hadoop的配置类是由资源指定的,资源可以由一个String或Path来指定:
  • String:在classpath中寻找
  • path: 直接从本地文件系统中查找

Configuration类无处不在,初学Hadoop的人都知道配置参数是在core-site.xml文件中进行的,所以这个类的目的也就明确了,默认情况下hadoop的Configuration类会按照顺序加载两个文件,文件的路径是通过classpath得到的(这里的classpath是指应用运行的类路径。服务端hadoop的classpath指向的是conf。客户端,classpath就是客户端应用的类路径src):

1、core-default.xml: hadoop的只读文件 位于src/core/文件夹中

2、core-site.xml: 指定hadoop安装过程需要的一些参数配置

xml文件中:资源以xml形式的数据表示,由一系列的键值对组成。资源可以用String或path命名,String-指示hadoop在classpath中查找该资源;Path-指示hadoop在本地文件系统中查找该资源。

注:也可以项目下新建folder  :conf。将build.xml放入conf中。1、右键conf ->  build path  ->use as souce folder   2、  右键conf ->  build path  -> configue build path .进入到 libreries 选项卡中,选择 Add  Class Folder 。在弹出的对话框中将选择conf文件夹。单击确定。总的方针是将 build.xml 添加到类路径中。

例子:

build.xml文件如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
    <name>lishuwei</name>
	<value>blue</value>
</property>
</configuration>

程序代码演示了两中方法的使用:

package com.lianglei;

import org.apache.hadoop.conf.Configuration;

public class VtesXml {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Configuration cong = new Configuration();
//        cong.addResource(new Path("/home/lloppo/workspace/Test_hbase/conf/build.xml"));  //采用的是绝对路径
        cong.addResource("build.xml");
        System.out.println(cong.get("lishuwei"));
    }

}




<think>好的,我现在需要帮助用户查找关于Hadoop配置文件的教程和核心参数详解。根据用户提供的引用内容,我需要整理这些信息,并按照用户的要求用中文回答,结构清晰,分步骤解决。 首先,用户的问题是关于Hadoopconfiguration配置文件,设置教程和核心参数详解。用户提供的引用中有多个关于Hadoop配置文件的信息,比如hadoop-env.sh、core-site.xml、hdfs-site.xml等的位置和功能。引用1提到配置文件存放在$HADOOP_HOME/etc/hadoop路径下,用户可以修改配置。引用2提到通过conf/hadoop-env.sh设置环境变量。引用3提到了HDFS路径的格式,引用4和5讨论了配置参数的设置方法,比如通过set和get方法操作参数,以及加载资源的机制。 接下来,我需要将这些信息整合成一个结构化的回答。根据用户的示例,回答应包括配置文件的位置、核心配置文件的功能、参数设置方法、配置加载机制以及最佳实践。同时需要生成相关问题,并正确使用引用标识。 首先确定配置文件的位置:根据引用1,路径是$HADOOP_HOME/etc/hadoop,所以需要明确指出这一点。然后,每个核心配置文件如hadoop-env.sh、core-site.xml等,需要详细说明它们的作用和常见参数。例如,hadoop-env.sh用于环境变量,如JAVA_HOME,这在引用2中提到过。core-site.xml的fs.defaultFS参数(引用3中的hdfs路径示例)和hadoop.tmp.dir。hdfs-site.xml中的副本数配置,mapred-site.xml中的框架设置,yarn-site.xml中的资源管理参数。 在参数设置方法部分,引用4和5提到用户可以通过set方法或直接编辑XML文件来设置参数。需要解释两种方法的优缺点,比如直接编辑更直观,而API方式适合动态配置。同时,引用5详细描述了配置加载机制,即通过getPros()方法加载资源,这应该在配置加载机制部分说明。 最佳实践部分需要结合引用中的信息,比如建议通过XML文件管理配置,分环境配置,备份等。此外,引用1提到用户可以根据需求修改配置,所以需要提醒用户修改后要重启服务。 最后,生成相关问题时要围绕Hadoop配置的常见疑问,比如路径修改、参数优先级、动态加载、环境变量设置等,确保问题与主题相关,并参考引用内容中的要点。 需要检查是否所有引用都被正确引用,比如引用1提到配置文件的位置和各个文件的作用,引用2关于hadoop-env.sh的环境变量,引用3的hdfs路径示例,引用4和5的参数设置方法及加载机制。在回答各部分时,应在适当的位置添加引用标识,例如在提到配置文件位置时引用[^1],环境变量设置引用[^2],路径格式引用[^3],参数设置方法引用[^4][^5]。 最后确保回答符合用户的要求:结构清晰,分步骤说明,使用正确的LaTeX格式,没有使用Markdown,并且生成的相关问题合理。同时,检查是否有遗漏的核心参数或配置步骤,确保信息准确全面。</think>### Hadoop Configuration配置文件设置教程及核心参数详解 #### 一、配置文件位置与结构 Hadoop配置文件存放在`$HADOOP_HOME/etc/hadoop`目录下[^1],主要包含以下核心文件: 1. **hadoop-env.sh**:定义Hadoop运行所需的环境变量(如`JAVA_HOME`)[^2] 2. **core-site.xml**:全局核心配置(如HDFS地址、临时目录) 3. **hdfs-site.xml**:HDFS专属配置(如副本数、数据块大小) 4. **mapred-site.xml**:MapReduce框架配置 5. **yarn-site.xml**:YARN资源管理配置 --- #### 二、核心参数详解 ##### 1. **core-site.xml**(HDFS通信基础) ```xml <property> <name>fs.defaultFS</name> <value>hdfs://namenode:8020</value> <!-- HDFS访问地址,格式为hdfs://host:port[^3] --> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> <!-- 临时目录,需确保权限正确 --> </property> ``` ##### 2. **hdfs-site.xml**(数据存储配置) ```xml <property> <name>dfs.replication</name> <value>3</value> <!-- 文件默认副本数 --> </property> <property> <name>dfs.blocksize</name> <value>128m</value> <!-- 数据块大小 --> </property> ``` ##### 3. **yarn-site.xml**(资源调度配置) ```xml <property> <name>yarn.resourcemanager.hostname</name> <value>resourcemanager</value> <!-- YARN主节点地址 --> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>8192</value> <!-- 单个节点可用内存 --> </property> ``` --- #### 三、参数设置方法 1. **直接编辑XML文件** - 修改后需重启服务生效 - 示例:修改`dfs.replication`调整副本策略[^1] 2. **通过API动态设置** ```java Configuration conf = new Configuration(); conf.set("dfs.replication", "2"); // 动态设置参数[^4] ``` - 优先级高于XML文件[^5] --- #### 四、配置加载机制 Hadoop通过`getProps()`方法加载配置,顺序为: 1. 默认配置(`core-default.xml`) 2. 用户自定义配置(`core-site.xml`等) 3. 运行时代码显式设置 **优先级**:代码显式设置 > XML文件 > 默认配置 --- #### 五、最佳实践 1. **分环境配置**:生产环境与测试环境使用不同的配置文件 2. **备份机制**:修改前备份原始文件(如`cp core-site.xml core-site.xml.bak`) 3. **验证配置**:通过`hadoop checknative`命令检查环境兼容性 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值