日志采集常见错误总结:
采集日志过程中简单错误
1.自定义拦截器 使用了第三方jar包
需要在pom中加入打包的工具依赖 否则打包的jar包弄到集群上会没有依赖 比如fastjsonorg.apache.maven.pluginsmaven-shade-plugin2.4.3packageshade*:*META-INF/*.SFMETA-INF/*.DSAMETA-INF/*.RSA
2.采集数据 .* 不是以.结尾的所有的文件 这是一个正则表达式 比如event.* 会匹配以event开头的所有的文件
3.如果需要选择器 type=multiplexing 是负载均衡 a拿了b就不会拿
4.拦截器的type 里面有内部类 内部类需要用$连接 且代码中内部类 需要用static 否则报错,因为需要先实例化
5.采集过来的数据需要后缀名需要加上.gz 且下游sink要使用压缩的形式压缩数据
a1.sinks.k1.hdfs.codeC = gzip
a1.sinks.k1.hdfs.fileType = CompressedStream 否则 hdfs不能将不能识别出这种压缩数据
6.多次采集失败 每次重新采集需要 删掉上游source的偏移量和下游channel的记录的偏移量
具体在 rm -rf
/opt/data/flumedata /root/.flume 不过以后采集正常了就不要再删了,否则将从最开始采集数据,会积压很多数据
其他是一些不细心的小问题,配置文件用的时候 参考实战日志采集
高级错误
1. flume的agent的堆内存大小
默认只有20M,在生产中是肯定不够的