开发者学堂课程【Flume 基础应用实战-企业全场景解决方案: Apache Flume-自定义 source(扩展)--功能测试实现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/715/detail/12779
Apache Flume-自定义 source(扩展)--功能测试实现
当实现自定义 source 组件的代码开发之后,接下来就来做一个功能的测试,看一下之前所说的逻辑到底能不能完成。
首先,需要针对 maven 工程打成一个 jar 包放在 Flume 的 lib 路径下。
回到编辑器当中,因为这里使用的是 maven 的插件,所以说选择 maven project,这里面选择 package 双击,这时,它就会把工程的 jar 包打在 target 目录下,可以看到这里显示。
在 target 目录下就有一个所谓的一个 jar,叫做 example-flume-1.1.jar,接下来就把这个 jar 包放置在 Flume 的 lib 路径下。
接下来把刚才打的 jar 包拖拽直接上传,之后自定义组件就可以去识别它。
然后 cd.. 到 conf 路径下,做一个采集方案的编写。
现在回到讲义中来看一下,这时候再去编写采集方案 source、channel、sink,为了方便,把 sink 打在屏幕上,打在日志上,而 source 这里指定了类型,注意这个类型要指定是刚才自定义实现类的一个全路径。
也就是 my Sql 右键选择它的全路径,叫做 copy reference,接下来连接的数据库、地址、用户名、密码,以及哪个表、查询什么等,根据id字段,当前值是零,延迟三秒钟,这些信息就会随着采集方案的执行传入到 Flume 的代码当中来进行构建。
接下来看具体相关的操作,把配置文件当中的 mysqlsource.conf 拖拽进来复制。
然后返回上一级进行相关的启动。
这时候看一下启动的命令就在讲义上直接使用。
这时看一下执行效果到底跟想象的是否一样,右键执行一下,大家可以看到这时候采集了四条数据。
这四条数据就封装成 event 对象开始进行采集,打印到屏幕上。它现在一直在进行一个检测,
因为刚才这个表当中只有四条记录,从第四条开始进行采入,这里面做个刷新,里面的值应该是 student,当前 current index 是4,这样完成查询,接下来如果想验证一下功能好不好,还可以做一个操作,比如在这里手动地再添加一个值,假设为5号,叫做 idcast,
写完之后点击对号做一个提交,刷新好之后,大家可以看到它又去执行了一个查询,数据把5号 idcast 查出来了。
现在开始查询 iacast。
这时候组件制定上就相当于能够实时监控 mysql 数据库当中一张表的变化,只要有数据发生改变,它就可以执行我们的查询,把数据更新出来,导入到所需要的地方当中去,这里是把它打印在屏幕上,也可以把它打印到其他地方去,或者把它存储在相关介质中。
这样就满足了自定义 source 的一个需求。