We had seen similar exception earlier reported by others on the list. What you
might want to try is to use a hex editor or equivalent to open up 'edits' and
get rid of the last record. In all cases, the last record might not be complete
so your namenode is not starting. Once you update your edits, start the namenode
and run 'hadoop fsck /' to see if you have any corrupt files and fix/get rid of
them. PS : Take a back up of dfs.name.dir before updating and playing around with it.
Thanks, Lohit
----- Original Message ---- From: steph <ste...@conviva.com> To: core...@hadoop.apache.org Sent: Monday, August 4, 2008 8:31:07 AM Subject: Re: EOFException while starting name node
2008-08-03 21:58:33,108 INFO org.apache.hadoop.ipc.Server: Stopping server on 9000 2008-08-03 21:58:33,109 ERROR org.apache.hadoop.dfs.NameNode: java.io.EOFException at java.io.DataInputStream.readFully(DataInputStream.java:178) at org.apache.hadoop.io.UTF8.readFields(UTF8.java:106) at org.apache.hadoop.io.ArrayWritable.readFields(ArrayWritable.java:90) at org.apache.hadoop.dfs.FSEditLog.loadFSEdits(FSEditLog.java:433) at org.apache.hadoop.dfs.FSImage.loadFSEdits(FSImage.java:759) at org.apache.hadoop.dfs.FSImage.loadFSImage(FSImage.java:639) at org.apache.hadoop.dfs.FSImage.recoverTransitionRead(FSImage.java: 222) at org.apache.hadoop.dfs.FSDirectory.loadFSImage(FSDirectory.java:79) at org.apache.hadoop.dfs.FSNamesystem.initialize(FSNamesystem.java:254) at org.apache.hadoop.dfs.FSNamesystem.<init>(FSNamesystem.java:235) at org.apache.hadoop.dfs.NameNode.initialize(NameNode.java:131) at org.apache.hadoop.dfs.NameNode.<init>(NameNode.java:176) at org.apache.hadoop.dfs.NameNode.<init>(NameNode.java:162) at org.apache.hadoop.dfs.NameNode.createNameNode(NameNode.java:846) at org.apache.hadoop.dfs.NameNode.main(NameNode.java:855)
Actually my exception is slightly different than yours. Maybe moving edits file and recreating a new one will work for you.
On Aug 4, 2008, at 2:53 AM, Wanjari, Amol wrote:
I'm getting the following exceptions while starting the name node -
ERROR dfs.NameNode: java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:375) at org.apache.hadoop.io.ArrayWritable.readFields(ArrayWritable.java:87) at org.apache.hadoop.dfs.FSEditLog.loadFSEdits(FSEditLog.java:455) at org.apache.hadoop.dfs.FSImage.loadFSEdits(FSImage.java:733) at org.apache.hadoop.dfs.FSImage.loadFSImage(FSImage.java:620) at org.apache.hadoop.dfs.FSImage.recoverTransitionRead(FSImage.java:222) at org.apache.hadoop.dfs.FSDirectory.loadFSImage(FSDirectory.java:76) at org.apache.hadoop.dfs.FSNamesystem.<init>(FSNamesystem.java:221) at org.apache.hadoop.dfs.NameNode.init(NameNode.java:130) at org.apache.hadoop.dfs.NameNode.<init>(NameNode.java:168) at org.apache.hadoop.dfs.NameNode.createNameNode(NameNode.java:795) at org.apache.hadoop.dfs.NameNode.main(NameNode.java:804)
Is there a way to recover the name node without losing any data.
Thanks, Amol