记flume自定义http Source采集

  • A+
所属分类:安全博客
摘要

flume 近日要用到flume+kafka进行数据采集。查阅资料后发现国内并没有自定义http source的相关文章,故此记录。

flume

前言

近日要用到flume+kafka进行数据采集。查阅资料后发现国内并没有自定义http source的相关文章,故此记录。

介绍

flume自带很多的source,如:exe、kafka...其中有一个非常简单的source——httpsource,使用httpSource,flume启动后会拉起一个web服务来监听指定的ip和port。常用的使用场景:对于有些应用环境中,不能部署Flume SDK及其依赖项,可以在代码中通过HTTP而不是Flume的PRC发送数据的情况,此时HTTP SOURCE可以用来将数据接收到Flume中。但是httpSource默认是用JSONHandler,说白了就是只能接收post提交的json。由于不能满足需要,就只能自己定义一个httpsource了.要自定义handler,必须实现HTTPSourceHandler接口。

自定义source

第一步,新建一个空的maven项目
添加如下依赖(记得pom里面修改打包方式为jar)

<dependency>     <groupId>org.apache.flume</groupId>     <artifactId>flume-ng-core</artifactId>     <version>1.9.0</version> </dependency> 

第二步,创建一个自定义的source类,需要实现HTTPSourceHandler接口(代码不贴了)
第三步,打包成jar包,丢到flume的lib目录下即可。
第四步,配置文件指定handler

flume配置

这里就不贴代码了(如下指定自定义的handler)

a1.sources=r1  a1.sinks=k1  a1.channels=c1   a1.sources.r1.type=http  a1.sources.r1.handler=org.example.GetHandler  a1.sources.r1.bind=10.10.255.199  a1.sources.r1.port=50000  a1.sources.r1.channels=c1   a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink  a1.sinks.k1.brokerList = localhost:9092  a1.sinks.k1.topic = flume_kafka  a1.sinks.k1.batchSize = 5  a1.sinks.k1.requiredAcks =1   a1.sources.r1.channels = c1  a1.sinks.k1.channel = c1   a1.channels.c1.type=memory 

来源:http://www.safe6.cn/

本文由 safe6 创作,著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

记flume自定义http Source采集

本站的所有程序和文章,仅限用于学习和研究目的;不得用于商业或者非法用途,否则,一切后果请用户自负!! 最后编辑时间为: 2020-02-26

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: