2017-02-22 22 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源定義中的trackerDir指令控制(默認情況下爲spooldir中的.flumespool)。

我們最終得到了空的元數據文件,然後沒有預期會看到的2個字節(我們正在使用avro接收器)。實際的數據文件實際上並沒有什麼問題,只能用元數據文件。

的方案因此刪除.flumespool和解決問題的本身(從盤松開過程中的一些空間,之後)。

  1. 坐你的後臺打印文件夾:/.../flume_spool/data...
  2. CMD: find . -type f -empty
  3. 我想你會發現這一點:.flumespool/.flumespool-main.meta
  4. 然後rm .flumespool/.flumespool-main.meta

Source

相關問題