Reputation: 1125
I was trying to run a matrix multiplication example presented by Mr. Norstadt under following link http://www.norstad.org/matrix-multiply/index.html. I can run it successfully with hadoop 0.20.2 but I tried to run it with hadoop 1.0.3 but I am getting following error. Is it the problem with my hadoop configuration or it is compatibility problem in the code which was written in hadoop 0.20 by author.Also please guide me that how can I fix this error in either case. Here is the error I am getting.
in thread "main" java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:180)
at java.io.DataInputStream.readFully(DataInputStream.java:152)
at org.apache.hadoop.io.SequenceFile$Reader.init(SequenceFile.java:1508)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1486)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1475)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1470)
at TestMatrixMultiply.fillMatrix(TestMatrixMultiply.java:60)
at TestMatrixMultiply.readMatrix(TestMatrixMultiply.java:87)
at TestMatrixMultiply.checkAnswer(TestMatrixMultiply.java:112)
at TestMatrixMultiply.runOneTest(TestMatrixMultiply.java:150)
at TestMatrixMultiply.testRandom(TestMatrixMultiply.java:278)
at TestMatrixMultiply.main(TestMatrixMultiply.java:308)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Thanks in advance
Regards, waqas
Upvotes: 3
Views: 4205
Reputation: 79
I also encountered same problem, in my case it was giving exception because I haven't closed SequenceFile.Writer
object. Problem got resolved when I added sequenceFileWriter.close()
statement in my code.
Also if input in MapReduce program is output of some previous MapReduce program then you have to explicitly write code to ignore _SUCCESS
file.
PS: I am using CHD4 Cloudera Hadoop configuration
Upvotes: 5
Reputation: 1125
I got it right. Infact it was not filtering _SUCCESS file automatically and due to reading this log file exception mentioned in the question was occuring. I filtered the files and now its working fine. Here is the link how I filtered the files Filter log files(_success and _log) in FileSystem.liststatus
Upvotes: 2