2011-07-13 91 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路徑的這些屬性,以顯示數據和名稱節點。這在我的情況下解決了這個問題。

相關問題