【问题描述】重启主机后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是一个临时的文件夹,系统每次重启时都会进行删除,在配置文件中进行修改就可。
【分析】
原始文件中的主要配置文件
将hadoop-2.7.解压缩后,在share/hdoop目录下关于common、HDFS 、Mapreduce、YARN的几个jar包中包含有最原始的配置文件:
------------->对应运行环境下的
------------->
------------->
-------------> -
2.使用临时目录的几个地方
在中可以看到
默认=/tmp/hadoop-${}
中引用该临时目录的几个地方为:
以前属性均由决定
=file://${}/dfs/name
=file://${}/dfs/data
=file://${}/dfs/namesecondary
3.修改临时目录路径
(1)在namenode上
$
修改:
[]
=/home/ctr/hadoop/tmp
(2)分发文件到datanode
$
$ cat${HADOOP_HOME}/etc/full/
(3)格式化文件系统
$hadoop namenode -format //等同于hdfs namenode -format
分别查看namenode和datanode发现,格式化只对namenode的tmp目录进行了初始化。
(4)启动集群
$
namenode下也创建了tmp目录,在tmp目录的current子目录下的VERSION文件,namenode和datanode的集群ID一致。