上一篇文章分析了Flume如何加载配置文件的,动态加载也只是重复运行getConfiguration()。 本篇分析加载配置文件后各个组件是如何运行的? 加载完配置文件订阅者Application类会收到订阅信息执行 ...
从bin flume 这个shell脚本可以看到Flume的起始于org.apache.flume.node.Application类,这是flume的main函数所在。 main方法首先会先解析shell命令,如果指定的配置文件不存在就甩出异常。 根据命令中含有 no reload conf 参数,决定采用那种加载配置文件方式:一 没有此参数,会动态加载配置文件,默认每 秒加载一次配置文件,因 ...
2014-04-16 19:09 3 3017 推荐指数:
上一篇文章分析了Flume如何加载配置文件的,动态加载也只是重复运行getConfiguration()。 本篇分析加载配置文件后各个组件是如何运行的? 加载完配置文件订阅者Application类会收到订阅信息执行 ...
org.apache.flume.source.SpoolDirectorySource是flume的一个常用的source,这个源支持从磁盘中某文件夹获取文件数据。不同于其他异步源,这个源能够避免重启或者发送失败后数据丢失。flume可以监控文件夹,当出现新文件时会读取该文件并获取数据 ...
org.apache.flume.sink.RollingFileSink 这个类比较简单。 source的种类有两种:一种是PollableSource;另外一种是EventDrivenSource。前者“必须有它自己的callback机制,该机制用于捕获新数据并将数据存储到通道中 ...
有的时候希望通过Flume将读取的文件再细分存储,比如讲source的数据按照业务类型分开存储,具体一点比如类似:将source中web、wap、media等的内容分开存储;比如丢弃或修改一些数据。这时可以考虑使用拦截器Interceptor。 flume通过拦截器实现修改和丢弃事件 ...
前言 之前一直在用flume收集数据,也做了一些插件开发,但是一直没整理相关的知识,最近感觉老是有一种知其然不知其所以然的感觉,所以从源码入手希望能更透彻一点吧,越来越感觉会用不能掌握啊!别人几个为啥就low了! 1.启动入口 估计没人关注过启动入口在什么地方吧?启动不报错就可以直接 ...
org.apache.flume.channel.MemoryChannel类是Flume-NG的memory-channel。 private LinkedBlockingDeque<Event> queue;//mem-channel存放数据的地方 private ...
)、org.apache.flume.channel.file.proto共计40个源码文件。 一、config ...
在AbstractConfigurationProvider类中loadSinks方法会调用loadSinkGroups方法将所有的sink和sinkgroup放到了Map<String, ...