本文匯總了Flume使用時的常見問題。

Hive日志數量少于實際日志數量?

  • 問題現象:通過Flume將日志寫入Hive,發現Hive中的日志數量少于實際產生的日志數量。
  • 解決方法:需要新增配置hdfs.batchSize,添加組件參數詳情,請參見添加組件參數。HDFS Sink通過hdfs.batchSize配置來控制每滿多少Event,刷新一次到HDFS。如果不配置該參數,默認每100條刷新一次到HDFS,會導致數據刷新不及時。

終止Flume進程時出現DeadLock報錯,如何處理?

  • 問題現象:腳本調用exit方法終止Flume進程時,偶現DeadLock報錯。
  • 解決方法:您可以使用命令kill -9強制退出。

如何處理強制退出后,FileChannel偶發性異常?

  • 問題1
    • 問題現象:使用FileChannel作為Channel類型,并在執行kill -9強制退出后,因獲取目錄鎖失敗,導致Flume無法成功重啟,具體報錯如下。
      Due to java.io.IOException: Cannot lock data/checkpoints/xxx. The directory is already locked.
    • 解決方法:強制退出后,重啟時需要清理相關目錄下的in_use.lock文件,否則會出現異常。因此請盡量避免kill -9操作。
  • 問題2
    • 問題現象:使用FileChannel作為Channel類型,并在執行kill -9強制退出后,因DATA目錄解析失敗,導致Flume無法成功重啟,具體報錯如下。
      org.apache.flume.channel.file.CorruptEventException: Could not parse event from data file.
    • 解決方法:強制退出后,重啟時需要清理相關目錄下的CheckPoint和DATA目錄,否則會出現異常。因此請盡量避免kill -9操作。