《Flume系列文章》 六、自定义Flume插件

自定义Flume插件

Flume的很多组件都是可以使用自定义的组件,可以自己实现Source、Channel、Sink,也可以编写Channel Selectors、Sink Processors、Interceptors、Monitoring等。每个组件的实现都是继承组件定义的接口,实现相关的方法,具体的实现可以参考Flume已经写好的组件。

创建插件项目,继承组件的接口并实现相关方法

1
2
3
4
public class DmpMemoryChannel extends BasicChannelSemantics {
// TODO
// 在编写插件的时候可以通过context获取配置文件中的配置,可以自定义一些配置。
}

打Jar包,并放入到 plugins.d 目录中

在plugins.d中创建dmp-flume-plugin/lib、dmp-flume-plugin/libext、dmp-flume-plugin/native目录,lib中放插件的Jar包,libext中放插件依赖的Jar包,native存放any required native libraries, such as .so files。

配置组件

1
agent.channels.memoryChannel1.type = org.sndo.dmp.flume.channel.memory.DmpMemoryChannel