本文基于flume1.7讲解
一、自定义source开发 方法一:你可以在start方法中启动额外的线程,不断的往channel中发数据。
方法二:
此方法中多了一个process()方法,这个方法在PollableSourceRunner类中会被一个线程不断的调用。yinc可以在process()实现不断重发。
二、自定义sink开发
process会不断调用,你只需在process中去取channel的数据即可。
三、插件部署
1.把开发的类打成JAR包,比如SpoolDirectoryExtSource.jar2.直接在flume下创建plugins.d目录
目录结构为:
plugins.d/plugins.d/SpoolDirectoryExtSource/plugins.d/SpoolDirectoryExtSource/lib/SpoolDirectoryExtSource.jarplugins.d/SpoolDirectoryExtSource/libext/plugins.d/SpoolDirectoryExtSource/native/
lib是放插件JAR的目录,libext是放插件的依赖JAR的目录,native放使用到的原生库
3.重新启动flume agent,flume就会自动装载我们的插件,这样在flume.conf中就可以使用全路径类名配置type属性了