Hadoop核心配置文件的默认配置解读
9.1 默认配置文件
4个核心的默认配置文件在$HADOOP_HOME/share/hadoop/目录下:
hadoop-2.2.0\share\hadoop\common\hadoop-common-2.2.0.jar\core-default.xml
hadoop-2.2.0\share\hadoop\hdfs\hadoop-hdfs-2.2.0.jar\hdfs-default.xml
hadoop-2.2.0\share\hadoop\mapreduce\hadoop-mapreduce-client-core-2.2.0.jar\mapred-default.xml
hadoop-2.2.0\share\hadoop\yarn\hadoop-yarn-common-2.2.0.jar\yarn-default.xml
9.2 自定义配置文件
(1) 自定义配置文件位于$HADOOP_HOME/etc/hadoop/目录下,分别是:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml
(1) 自定义的配置文件来自于默认配置文件,在自定义配置文件中配置的信息将会覆盖默认配置文件中的某些配置。
如果用户想对某些配置进行自定义配置,不应该去修改默认配置文件,而是在自定义配置文件中进行覆盖。
9.3 实际生产环境中的配置
(1) core-site.xml的配置
参考默认配置文件core-default.xml,在$HADOOP_HOME/etc/hadoop目录下找到core-site.xml,进行用户自定义配置
- 配置NameNode
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-yarn.dragon.org:8020</value>
</property>
说明:对于默认文件系统的配置以前是下面的名称,但描述信息说明这种名称已被弃用
<property>
<name>fs.default.name</name> --过时了
<value>file:///</value>
<description>Deprecated. Use (fs.defaultFS) property instead</description>
</property>
- 配置临时目录
<property>
<name>hadoop.tmp.dir</name>
<value>/workDir/hadoop-2.2.0/data/tmp</value>
</property>
说明:
1> 这个临时目录在很多地方被引用
2> 如果指定了一个新的临时目录,需要确保该目录是存在的!如果不存在,请创建它先!
- 配置WebUI的登录用户名
<property>
<name>hadoop.http.staticuser.user</name>
<value>dragon</value>
</property>
(2) hdfs-site.xml的配置
参考默认配置文件hdfs-default.xml,在$HADOOP_HOME/etc/hadoop目录下找到hdfs-site.xml,进行用户自定义配置
- 配置NameNode节点WebUI的地址
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop-yarn.dragon.org:50070</value>
</property>
- 配置SecondaryNameNode主机地址
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-yarn.dragon.org:50090</value>
</property>
- 配置NameNode节点fsimage文件的存储目录
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///workDir/hadoop-2.2.0/data/dfs/nn/fsimage</value>
</property>
说明:需要确保该目录是存在的!如果不存在,请创建它先!
- 配置NameNode节点edits文件的存储目录
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///workDir/hadoop-2.2.0/data/dfs/nn/edits</value>
</property>
说明:需要确保该目录是存在的!如果不存在,请创建它先!
- 配置DataNode文件的存储目录
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///workDir/hadoop-2.2.0/data/dfs/dn</value>
</property>
说明:需要确保该目录是存在的!如果不存在,请创建它先!
- 配置SecondaryNameNode文件的存储目录(文件系统镜像文件)
因为SecondaryNameNode是用来辅助NameNode合并fsimage和edits文件的,所以需要为其配置文件存储目录。
另外,在生产环境下,SecondaryNameNode节点的机器硬件配置需要跟NameNode一样,因为,NameNode产生的fsimage和edits和SecondaryNameNode节点的要保存同步。
下面是具体的配置
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///workDir/hadoop-2.2.0/data/dfs/snn/fsimage</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///workDir/hadoop-2.2.0/data/dfs/snn/edits</value>
</property>
说明:需要确保该目录是存在的!如果不存在,请创建它先!
- 配置副本数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
- 配置用户权限检查
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
(3) yarn-site.xml
参考默认配置文件yarn-default.xml,在$HADOOP_HOME/etc/hadoop目录下找到yarn-site.xml,进行用户自定义配置
- 配置ResourceManager主机地址
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-yarn.dragon.org</value>
</property>
- 配置有效的服务名称
<property>
<description>thevalid service name should only contain a-zA-Z0-9_ and can not start withnumbers</description>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(4) mapreduce-site.xml
- 配置MapReduce运行框架为yarn
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 配置历史服务器地址和webapp地址
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop-yarn.dragon.org:10020</value>
<description>MapReduceJobHistory Server IPC host:port</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop-yarn.dragon.org:19888</value>
<description>MapReduceJobHistory Server Web UI host:port</description>
</property>
(5) slaves.xml
slaves.xml文件用户配置DataNode节点
(6) 说明
配置文件修改后需要重新启动所有进程,使配置生效。
但是由于fsimage和edits的目已经发生改变,需要将原来目录下的文件移动到新的目录下。当然,如果在测试环境下最省事的办法就是重新格式化NameNode。
停止所以进程:
[hadoop@hadoop-yarn hadoop-2.2.0]$ sbin/stop-dfs.sh
[hadoop@hadoop-yarn hadoop-2.2.0]$sbin/stop-yarn.sh
格式化NameNode:
[hadoop@hadoop-yarn hadoop-2.2.0]$ bin/hdfsnamenode -format
启动所以进程:
[hadoop@hadoop-yarn hadoop-2.2.0]$sbin/start-dfs.sh
[hadoop@hadoop-yarn hadoop-2.2.0]$sbin/start-yarn.sh
当NameNode启动的时候就会重新产生fsimage和edits文件。可以到配置的目录下进行查看