使用jps,发现没有namenode
使用命令/opt/hadoop/sbin/start-all.sh
启动hadoop,之后使用jsp,一般来讲会出现如下6个线程 1
2
3
4
5
655598 Jps
54490 NameNode
54684 DataNode
54931 SecondaryNameNode
55332 NodeManager
38251 ResourceManager1
java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, but got txid 16.
hadoop namenode -recover
即可恢复。
使用jps,发现没有datanode
总结写在前: 由于意外hadoop没有创建data文件夹,执行cp -r /data/tmp/hadoop/tmp/dfs/data /data/tmp/hadoop/hdfs
,并修改clusterId,clusterId在/data/tmp/hadoop/hdfs/data/current/VERSION中。
在执行上面的操作修复namenode之后,发现原来在的datanode居然不见了。还是使用老办法发现日志文件(日志文件名字太长就不写了),异常:All specified directories are failed to load。
。经过百度之后发现是datanode和namenode配置文件的VERSION文件中的clusterId不一致。所以只需要将clusterId更改成一致即可。 但是我的出现的问题重点不是这个,我在修改clusterId时发现:我的namenode配置在/data/tmp/hadoop/hdfs/name中。但是检查我的datanode配置是否在/data/tmp/hadoop/hdfs/data中时,发现hadoop根本没有创建这个文件夹。于是又进行排查,发现在/data/tmp/hadoop/tmp/dfs中存在data文件夹。于是使用命令cp /data/tmp/hadoop/tmp/dfs/data /data/tmp/hadoop/hdfs
,将这份data文件夹拷贝到/data/tmp/hadoop/hdfs,并更改clusterId。VERSION文件在/data/tmp/hadoop/hdfs/data/current