Прежде всего, я новичок в Hadoop.
У меня есть небольшая программа Hadoop pipe, которая генерирует исключение java.io.EOFException.Программа принимает в качестве входных данных небольшой текстовый файл и использует hadoop.pipes.java.recordreader и hadoop.pipes.java.recordwriter.Ввод очень прост, например:
1 262144 42.8084 15.9157 4.1324 0.06 0.1
Однако Hadoop сгенерирует исключение EOFException, что я не вижу причины.Ниже приведена трассировка стека:
10/12/08 23:04:04 INFO mapred.JobClient: Running job: job_201012081252_0016
10/12/08 23:04:05 INFO mapred.JobClient: map 0% reduce 0%
10/12/08 23:04:16 INFO mapred.JobClient: Task Id : attempt_201012081252_0016_m_000000_0, Status : FAILED
java.io.IOException: pipe child exception
at org.apache.hadoop.mapred.pipes.Application.abort(Application.java:151)
at org.apache.hadoop.mapred.pipes.PipesMapRunner.run(PipesMapRunner.java:101)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
at org.apache.hadoop.mapred.Child.main(Child.java:170)
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(DataInputStream.java:267)
at org.apache.hadoop.io.WritableUtils.readVLong(WritableUtils.java:298)
at org.apache.hadoop.io.WritableUtils.readVInt(WritableUtils.java:319)
at org.apache.hadoop.mapred.pipes.BinaryProtocol$UplinkReaderThread.run(BinaryProtocol.java:114)
Кстати, я выполнил это в полностью распределенном режиме (кластер с 3 рабочими узлами).
Любая помощь приветствуется!Спасибо