2011-07-13 64 views
0

例外,我得到的是,Hadoop NameNode无法启动,错误:FSNamesystem初始化失败。 java.io.FileNotFoundException

2011-07-13 12:04:13,006 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.FileNotFoundException: File does not exist: /opt/data/tmp/mapred/system/job_201107041958_0120/j^@^@^@^@^@^@ 
     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedSetPermission(FSDirectory.java:544) 
     at org.apache.hadoop.hdfs.server.namenode.FSEditLog.loadFSEdits(FSEditLog.java:724) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSEdits(FSImage.java:992) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:812) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:364) 
     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965) 

2011-07-13 14:45:02,780 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed. 
java.io.FileNotFoundException: File does not exist: /opt/data/tmp/mapred/system/job_201107041958_0120/j^@^@^@^@^@^@ 
     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedSetPermission(FSDirectory.java:544) 
     at org.apache.hadoop.hdfs.server.namenode.FSEditLog.loadFSEdits(FSEditLog.java:724) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSEdits(FSImage.java:992) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:812) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:364) 
     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965) 

回答

0

问题(editlogs被损坏)得到了解决。我使用了-importCheckpoint选项。

我只是想告诉你可能的情况/原因Editlog的腐败可能发生(纠正我,如果我错了),

下面是HDFS中-site.xml中的典型配置

hadoop.tmp.dir : /opt/data/tmp 
dfs.name.dir : /opt/data/name 
dfs.data.dir : /opt/data/data 
mapred.local.dir : ${hadoop.tmp.dir}/mapred/local 

/opt/data是一个安装的存储器,大小为50GB。 Namenode,SecondaryNamenode($ {hadoop.tmp.dir}/dfs/namesecondary)& Datanode目录是在/ opt/data本身内配置的。

一旦我移动了3.6GB的压缩(bz2)文件,我猜测/ opt/data这个目录的内存使用情况。可能是100%(我在此事件后检查了($ df -h))。然后,我用简单的“Select”查询运行Hive,它的job.jar文件也需要在已经没有空间的同一个目录中创建。所以这就是editlog腐败可能发生的原因。

这真的是一个很好的学习!现在我改变了这种配置。

-1

似乎文件位置不存在。我宁愿将hdfs dirs存储在与/ tmp不同的其他位置。确保hdfs-site.xml具有定义的dir路径的这些属性,以显示数据和名称节点。这在我的情况下解决了这个问题。

相关问题