Hadoop学习笔记6之配置Hadoop临时目录

【问题描述】重启主机后SecondaryNameNode能启动,NameNode启动不了

【查看日志】

查找日志(日志: /hadoop/hadoop-0.20.2/logs):

Directory /tmp/hadoop-root/dfs/name is inan inconsistent state: storage directory

现在问题比较明确了,是临时目录不存在导致。/tmp/hadoop-hadoop/dfs/name是一个临时的文件夹,系统每次重启时都会进行删除,在配置文件中进行修改就可。


【分析】

1.hadoop原始文件中的主要配置文件

将hadoop-2.7.3.tar.gz解压缩后,在share/hdoop目录下关于common、HDFS 、Mapreduce、YARN的几个jar包中包含有最原始的配置文件:

core-default.xml------------->对应运行环境下的core-site.xml

hdfs-default.xml-------------> hdfs-site.xml

mapred-default.xml-------------> mapred-site.xml

yarn-default.xml-------------> yarn-site.xml-

 

2.使用临时目录的几个地方

在core-default.xml中可以看到

默认hadoop.tmp.dir=/tmp/hadoop-${user.name}

hdfs-default.xml中引用该临时目录的几个地方为:

以前属性均由hadoop.tmp.dir决定

dfs.namenode.name.dir=file://${hadoop.tmp.dir}/dfs/name

dfs.datanode.data.dir=file://${hadoop.tmp.dir}/dfs/data

dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary

 

3.修改临时目录路径

(1)在namenode上

$stop-all.sh

修改:

[core-site.xml]

hadoop.tmp.dir=/home/ctr/hadoop/tmp

(2)分发文件到datanode

$ xsync.sh  core-site.xml
$xcall.sh  cat${HADOOP_HOME}/etc/full/core-site.xml

(3)格式化文件系统

$hadoop  namenode  -format              //等同于hdfs  namenode -format

分别查看namenode和datanode发现,格式化只对namenode的tmp目录进行了初始化。

(4)启动集群

$start-all.sh

namenode下也创建了tmp目录,在tmp目录的current子目录下的VERSION文件,namenode和datanode的集群ID一致。

你可能感兴趣的:(hadoop)