flume的一次使用

2018年3月9日17:50:29 发表评论 416 views

1、介绍

Flume是一个分布式的收集、移动大量的日志数据,是一种基于数据流的架构(管道流);

(1)、Flume主要有三个概念:source、channel、sink。

(2)、4种使用方式:单例、多例、合并、复用

a、单例:只有一个flume程序和agent(单管道)

b、多例:多个单flume和agent的直线组合

c、合并:多个flume的n-n关系

d、复用:一个flume的流,流向多个目的地

2、使用经历

需求:使用flume来做历史数据的传输,要将客户的历史数据传到我们的公司的服务集群。

解决:source端我使用了taildir对文件目录下的匹配文件进行实时的监控;chanel我使用的memory型(这里后期我们会做成filechannel,因为memory对内存的消耗还是比较大的);sink端我自定义了使用http传输数据的sink类。在这个过程中我还对source的这一步的数据自定义了interceptor进行过滤。下面来说说每一步的实现思路。

(1)、source--taildir

(2)、interceptor-custom

需要实现Interceptor接口,并且将打包好的jar包放在flume/plugins.d/custome-interceptor中的lib文件夹中,在lib的同级目录中有一的libext文件夹,这里是放interceptor-custom用到的第三方jar包

配置文件

(3)、memory通道

(4)、sink-custom

继承了AbstractSink,实现了Configurable,需要打包好的jar包放到flume目录下的lib文件夹中

3、其他实现代码补充

sink:

http:

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

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