1.flume配置文件
a1.sources.r1.handler = xxx.xxx.xxx.MyHttpSourceHandler
2.引入自定义handler 步骤
建一个java maven项目,pom引入依赖
<dependencies>
<dependency>
<groupId>org.apache.flume</groupId>
<artifactId>flume-ng-sdk</artifactId>
<version>1.8.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flume</groupId>
<artifactId>flume-ng-core</artifactId>
<version>1.8.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flume</groupId>
<artifactId>flume-ng-configuration</artifactId>
<version>1.8.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
自定义的handler类必须实现的HTTPSourceHandler接口。此处理程序需要一个HttpServletRequest和返回一个flume 事件列表。默认是:JSONHandler
然后打成jar包,放到flume lib目录下
注意:启动flume必须要在flume根目录下
bin/flume-ng agent --conf conf --conf-file conf/flume.conf --name a1 -Dflume.root.logger=INFO,DAILY
之前我在conf目录中用flume-ng agent --conf conf --conf-file flume.conf --name a1 -Dflume.root.logger=INFO,console命令运行
(如果没有引入外部jar就没这个问题,正常执行)
结果一直报自定义handler ClassNotFoundException错误,百思不得其解,耽误大量时间,原因就在这里。
这篇博客讲述了在配置Flume时遇到自定义HandlerClassNotFoundException的问题。通过在Java Maven项目中引入Flume的相关依赖,实现HTTPSourceHandler接口,并将自定义的handler打包放入Flume的lib目录下。启动Flume时,需在正确目录下使用指定命令,否则会出现错误。作者强调了启动命令的细节,指出不正确的启动方式可能导致此类错误。
604

被折叠的 条评论
为什么被折叠?



