2017-02-22 4 views
0

Diese Nacht haben wir einen Speicherplatz voll Problem und heute erhalte ich diesen Fehler in meinem Flume log:Flume: java.io.IOException: Kein Datendatei

22 Feb 2017 10:24:56,180 ERROR [pool-6-thread-1] (org.apache.flume.client.avro.ReliableSpoolingFileEventReader.openFile:504) - Exception opening file: /.../flume_spool/data.../data_2017-02-21_17-15-00_8189 
java.io.IOException: Not a data file. 
     at org.apache.avro.file.DataFileStream.initialize(DataFileStream.java:102) 
     at org.apache.avro.file.DataFileReader.<init>(DataFileReader.java:97) 
     at org.apache.avro.file.DataFileWriter.appendTo(DataFileWriter.java:160) 
     at org.apache.avro.file.DataFileWriter.appendTo(DataFileWriter.java:149) 
     at org.apache.flume.serialization.DurablePositionTracker.<init>(DurablePositionTracker.java:141) 
     at org.apache.flume.serialization.DurablePositionTracker.getInstance(DurablePositionTracker.java:76) 
     at org.apache.flume.client.avro.ReliableSpoolingFileEventReader.openFile(ReliableSpoolingFileEventReader.java:478) 
     at org.apache.flume.client.avro.ReliableSpoolingFileEventReader.getNextFile(ReliableSpoolingFileEventReader.java:459) 
     at org.apache.flume.client.avro.ReliableSpoolingFileEventReader.readEvents(ReliableSpoolingFileEventReader.java:229) 
     at org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryRunnable.run(SpoolDirectorySource.java:227) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

Flume Version: 1.5.2

+0

aussehen wie Problem mit dem Gerinne Version diesem Link kann es helfen Ihnen https://issues.apache.org/jira/browse/FLUME-2525 –

+1

dieses Problem in der Gerinne 1.6 behoben worden –

Antwort

0

Die Ausnahme java.io.IOException: Not a data file war auf das Vorhandensein eines temporären Verzeichnisses mit Metadaten zur Verarbeitung zurückzuführen.

Dieses Verzeichnis wird durch die Anweisung trackerDir in der Definition der Quelle der Spooldir in der Datei "rume.conf" (standardmäßig ".flamespool" im Spooldir) gesteuert.

Am Ende hatten wir leere Metadaten-Dateien, die dann nicht die 2 Bytes hatten, die avro (wir benutzen eine avro-Senke) erwartet. Es ist eigentlich nichts falsch mit der eigentlichen Datendatei, nur mit der Metadatendatei.

Die Lösung ist somit .flumespool und das Problem zu löschen löst sich (nach einem wenig Platz von der Platte, natürlich freigibt.)

  1. Go in Ihrem Spool-Ordner: /.../flume_spool/data...
  2. cmd: find . -type f -empty
  3. ich denke, man diese gefunden wird: .flumespool/.flumespool-main.meta
  4. dann rm .flumespool/.flumespool-main.meta

Source

Verwandte Themen