Flume自定义handler报错ClassNotFoundException

这篇博客讲述了在配置Flume时遇到自定义HandlerClassNotFoundException的问题。通过在Java Maven项目中引入Flume的相关依赖,实现HTTPSourceHandler接口,并将自定义的handler打包放入Flume的lib目录下。启动Flume时,需在正确目录下使用指定命令,否则会出现错误。作者强调了启动命令的细节,指出不正确的启动方式可能导致此类错误。

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错误,百思不得其解,耽误大量时间,原因就在这里。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值