2017-02-22 16 views
0

この夜、私たちは、ディスクの空き容量いっぱい問題と今日を持って、私は私の水路ログにこのエラーが表示されます。水路:にjava.io.IOException:ないデータファイル

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) 

水路のバージョン:1.5.2

+0

外観は、それはあなたがhttps://issues.apache.org/jira/browse/FLUME-2525 –

+1

この問題は水路1.6で修正されているのを助けるかもしれません –

答えて

0

java.io.IOException: Not a data file例外は、処理用のメタデータを保持する一時ディレクトリが存在するためです。

このディレクトリは、flume.confのspooldirソース(デフォルトではspoololdのflumespool)の定義のtrackerDirディレクティブによって制御されます。

私たちは空のメタデータファイルを持っていましたが、それはavro(私たちはavroシンクを使用しています)が見たいと思う2バイトを持っていませんでした。実際のデータファイルには実際には何も問題はなく、メタデータファイルだけがあります。 (。もちろん、ディスクからスペースのビットを解除後)

ソリューションは.flumespoolを削除することがあり、問題自体を解決

  1. あなたのスプールフォルダに移動します。/.../flume_spool/data...
  2. CMD: find . -type f -empty
  3. は、私はあなたがこれを見つけただろうと思います。その後、.flumespool/.flumespool-main.meta
  4. rm .flumespool/.flumespool-main.meta
このリンクをチェック水路バージョンでの問題のような

Source

関連する問題