Hadoop配置文件模板
Hadoop的配置文件都在$HADOOP_HOME/etc/hadoop
下面。比如我这里是:
Hadoop主要配置文件:
配置文件 | 功能描述 |
---|---|
hadoop-env.sh | 配置Hadoop运行所需的环境变量 |
yarn-env.sh | 配置Yarn运行所需的环境变量 |
core-site.xml | Hadoop核心全局配置文件,可在其他配置文件中引用该文件 |
hdfs-site.xml | HDFS配置文件,继承core-site.xml配置文件 |
mapred-site.xml | MapReduce配置文件,继承core-site.xml配置文件 |
yarn-site.xml | Yarn配置文件,继承core-site.xml配置文件 |
core-site.xml
参考官方core-default.xml配置字段信息:hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml
该文件是Hadoop的核心配置文件,其目的是配置HDFS地址、端口号,以及临时文件目录。
<configuration>
<!-- 用于设置Hadoop的默认文件系统,由URI指定 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<!-- 配置Hadoop的临时目录,默认/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/app/hadoop/hadoop-2.6.4/tmp</value>
</property>
<!-- 指定哪些主机可以充当代理用户 hduser。在这里,设置为 * 表示任何主机 -->
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
hadoop-env.sh
hadoop-env.sh用来保证Hadoop系统能够正常执行HDFS的守护进程NameNode、Secondary NameNode和DataNode。
修改 HADOOP_CONF_DIR
和JAVA_HOME
环境变量值,并添加HADOOP_LOG_DIR
环境变量项。
export JAVA_HOME=/usr/lib/java/jdk1.7.0_79
export HADOOP_LOG_DIR=/app/hadoop/hadoop-2.6.4/tmp
export HADOOP_CONF_DIR=/app/hadoop/hadoop-2.6.4/etc/hadoop
修改完之后source编译该文件,让修改生效。
hdfs-site.xml
参考官方hdfs-default.xml配置字段信息:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
该文件用于设置HDFS的NameNode和DataNode两大进程。
<configuration>
<!-- 指定secondary namenode的HTTP地址和端口 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:9000</value>
</property>
<!-- 指定namenode名称空间的存储地址 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/app/hadoop/hadoop-2.6.4/name</value>
</property>
<!-- 指定datanode数据存储地址 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/app/hadoop/hadoop-2.6.4/data</value>
</property>
<!--指定数据冗余份数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定可以通过web访问hdfs目录-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
yarn-env-sh
添加JAVA_HOME
环境变量值。
export JAVA_HOME=/usr/lib/java/jdk1.7.0_79
yarn-site.xml
参考官方yarn-default.xml配置字段信息:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
本文件是Yarn框架的核心配置文件,配置ResourceManager 和NodeManager。
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 客户端提交作业的端口 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:8088</value>
</property>
</configuration>
mapred-site.xml
该文件是MapReduce的核心配置文件,用于指定MapReduce运行时框架。在etc/hadoop/目录中默认没有该文件,需要先通过“cp mapred-site.xml.template mapred-site.xml”命令将文件复制并重命名为“mapred-site.xml”。接着,打开mapred-site.xml文件进行修改。
<configuration>
<!-- 指定MapReduce运行时框架,这里指定在Yarn上,默认是local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置jobhistory server -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop1:19888</value>
</property>
</configuration>
slaves
在etc/hadoop/slaves文件中列出所有工作节点的主机名或者IP地址。每行一个。用来配合一键启动脚本启动集群从节点。要使用此功能,必须为用于运行 Hadoop 的账户建立 ssh 信任(通过无密码 ssh 或其他方式,如 Kerberos)。打开该配置文件,先删除里面的内容(默认localhost),然后配置如下内容:
hadoop1
hadoop2
hadoop3