flume插件开发及部署

本文基于flume1.7讲解
一、自定义source开发
方法一:
flume插件开发及部署_第1张图片

你可以在start方法中启动额外的线程,不断的往channel中发数据。

方法二:
flume插件开发及部署_第2张图片

此方法中多了一个process()方法,这个方法在PollableSourceRunner类中会被一个线程不断的调用。yinc可以在process()实现不断重发。

二、自定义sink开发
flume插件开发及部署_第3张图片

process会不断调用,你只需在process中去取channel的数据即可。

三、插件部署
1.把开发的类打成JAR包,比如SpoolDirectoryExtSource.jar

2.直接在flume下创建plugins.d目录

目录结构为:

plugins.d/
plugins.d/SpoolDirectoryExtSource/
plugins.d/SpoolDirectoryExtSource/lib/SpoolDirectoryExtSource.jar
plugins.d/SpoolDirectoryExtSource/libext/
plugins.d/SpoolDirectoryExtSource/native/

lib是放插件JAR的目录,libext是放插件的依赖JAR的目录,native放使用到的原生库

3.重新启动flume agent,flume就会自动装载我们的插件,这样在flume.conf中就可以使用全路径类名配置type属性了

你可能感兴趣的:(Flume)