Java: выброс файла HDFS EOFException - PullRequest
0 голосов
/ 07 сентября 2018

В конвейере данных задание Spark преобразует файлы последовательности в файлы паркета. Оригинальные файлы последовательности написаны KafkaConnect, который читает данные из тем Кафки.
Есть несколько файлов (2-3 файла в день), которые не может прочитать задание. Кидает

java.io.EOFException
    at java.io.DataInputStream.readFully(DataInputStream.java:197)
    at org.apache.hadoop.io.DataOutputBuffer$Buffer.write(DataOutputBuffer.java:70)
    at org.apache.hadoop.io.DataOutputBuffer.write(DataOutputBuffer.java:120)
    at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:2446)
    at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:2578)

Я могу повторить ту же ошибку с помощью следующего метода Java:

reader = new SequenceFile.Reader(new Configuration(), 
SequenceFile.Reader.file(input));
      LongWritable key = new LongWritable();
      Text val = new Text();
      while (reader.next(key, val)) {
      }
reader.close();

Проблема в том, что я могу правильно читать поврежденные файлы из команды hdfs: hdfs dfs -text <file> | text Но почему он выбрасывает исключение из кода Java?

...