本文汇总了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操作。