flume报错Serializer has been closed

问题:  java.lang.IllegalStateException: Serializer has been closed

flume报错Serializer has been closed

flume报错Serializer has been closed

导致问题可能原因

1. 当文件修改日期更改时
2. 当文件大小变化时
3. 在重命名当前文件时,目标文件名称已存在(即使具有不同的大小)  

4. 多次启动了flume,导致多个进程同时在读取同一个目录。(这个把我坑了好久)


解决方案

 1. 在监控目录下写大文件时加上能够被忽略的前缀,如 TEMP_ 等,然后在flume中配置 ignorePattern的值。写完之后重命名既可。

  2. kill掉多余的flume进程, 保证只有一个flume在运行。(由于我用的ambari启动和停止flume,停止时界面显示进程关闭了实际进程还在后台运行。)