吐槽 flume-ng

这几天在折腾 flume-ng,版本为官方的1.5.2,参考了网上的各种段子,也经历了一些坑,真可谓是一路google一路哭,捣鼓得目前勉强算是能用了,回顾这几天的苦逼历程,忍不住还是要吐槽一下。

其实我的需求很简单:将app(几十个小的业务)的日志(各种日志:java,php,python,go,nginx), 通过 flume-ng 实时(尽量)收集起来,存放到hdfs中,作为离线统计的数据源。
flume-logo
本文暂不讲具体的配置(等调试差不多正式放到生产上在分享出来),下面只是吐槽一下苦逼的历程:
1. 环境搭建:Hadoop-2.4.1,fluem-ng-1.5.2 app日志模拟生成
2. 测试tail source,丢数据,日志切割的时候有问题
3. 测试spooldir,不好用,生成.COMPLETE文件后无法追加数据,需要手动切割日志放到spolldir目录中,万一文件名跟.COMPLETE重复的话就挂了,需要重启agent
4. 一位hadoop开发哥们推荐了第三方的source,以为思密达同学写的(flume-ng-extends),使用mvn编译后同样发现基本无法使用,居然不向hdfs写数据。
5. 网上搜到有同学骑小象去远方对flume-ng-extends的代码进行了修改,按照博文的说明我这边也进行了同样的修改,mvn编译中出现报错,硬着头皮尝试修复,后来居然能够编译通过,但是运行是写入hdfs是存在一些问题(关键是我代码太糙)。
6. 继续寻找,这次找到了另外的source flume_monitor_source ,参考github中的pdf文档的配置,已经基本满足需求了,这时候也莫名的感觉心情舒畅了许多。
7. 接下来进行多app agent,SinkGroup及sink loadbalance 测试。
8. 大数据量压力写入测试,性能参数调优(进行中)。

感觉 flume-ng 设计理念还是挺好的,实际使用还需要不断的探索,紧靠运维同学很难,想弄的更完美一些,至少要花时间研读java源码,根据实际的app特点、发现的bug和业务具体需求进行一些定制化的修改才行。

1 Comment

  1. 一方通行

    😀 😀 现在你说的那个插件是可以弄出来了吗,可是我看见配置上面完全没有sink hdfs的东西啊,都是source

Comments are closed