Hello!,
I am working with genetics algorithms in Mahout. Specifically I am trying to use the "MahoutEvaluator"
to evaluate my own FitnessEvaluator based on the DummyEvaluator. The problem is that if I
execute the program sequentially without hadoop ($ java -jar geneticoJose2.jar) the program
finish correctly, but if I try to execute it in a pseudo-distributed mode ($ /home/jose/Descargas/hadoop-0.20.203.0/bin/hadoop
jar geneticoJose2.jar) an error occurs:
Exception 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:1450)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1428)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1353)
at org.apache.hadoop.io.SequenceFile$Sorter$SegmentDescriptor.nextRawKey(SequenceFile.java:3072)
at org.apache.hadoop.io.SequenceFile$Sorter$MergeQueue.merge(SequenceFile.java:2887)
at org.apache.hadoop.io.SequenceFile$Sorter.merge(SequenceFile.java:2616)
at org.apache.hadoop.io.SequenceFile$Sorter.merge(SequenceFile.java:2587)
at org.apache.hadoop.io.SequenceFile$Sorter.merge(SequenceFile.java:2701)
at org.apache.mahout.ga.watchmaker.OutputUtils.importEvaluations(OutputUtils.java:77)
at org.apache.mahout.ga.watchmaker.MahoutEvaluator.evaluate(MahoutEvaluator.java:79)
at es.udc.tic.world.Poblacion.actualizarFitness(Poblacion.java:68)
at Principal.main(Principal.java:55)
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)
Does anybody know why it happens? Could this be produced by incompatibilities between Mahout
and Hadoop versions?
Thank you in advance.
|