hadoop 无法启动namenode

来源:互联网 发布:淘宝打折软件怎么设置 编辑:程序博客网 时间:2024/05/02 00:26

在centos下部署了伪分布的hadoop,之前运行一直没有什么问题,但是今天启动突然发现namenode启动不了,jps查看其它的服务都起来了唯独没有namenode的进程,日志如下:

2013-09-23 01:18:19,555 INFO org.apache.hadoop.hdfs.server.common.Storage: Start loading image file /usr/hadoop/data/dfs/name/current/fsimage

2013-09-23 01:18:19,556 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:881)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:834)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:378)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)
2013-09-23 01:18:19,783 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:881)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:834)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:378)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)

    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)


意思是无法读取/usr/hadoop/data/dfs/name/current/fsimage,但是这个文件确实是存在的,但是fsimage却为空。不知道什么时候被清空了,于是从/usr/hadoop/data/dfs/namesecondary 把文件夹current和image全部拷贝到/usr/hadoop/data/dfs/name/current,启动成功。但是在实际的系统运维中恐怕不能这样子做,虽然secondnamenode的数据时namenode的备份但是并不是完全的备份。所以不能百分之百的恢复到最原始的状态,但是究竟是什么操作导致了fsimage被清空现在不得而知


原创粉丝点击