你的位置:首页 > 软件开发 > Java > Apache Flume 1.7.0 各个模块简介

Apache Flume 1.7.0 各个模块简介

发布时间:2017-07-28 00:00:29
Flume简介Apache Flume是一个分布式、可靠、高可用的日志收集系统,支持各种各样的数据来源,如http,log文件,jms,监听端口数据等等,能将这些数据源的海量日志数据进行高效收集、聚合、移动,最后存储到指定存储系统中,如kafka、分布式文件系统、Solr搜索服务 ...

Flume简介

Apache Flume是一个分布式、可靠、高可用的日志收集系统,支持各种各样的数据来源,如http,log文件,jms,监听端口数据等等,能将这些数据源的海量日志数据进行高效收集、聚合、移动,最后存储到指定存储系统中,如kafka、分布式文件系统、Solr搜索服务器等;

Apache Flume主要有以下几大模块组成:

  1. 数据源采集(Source)
  2. 数据拦截(Interceptor)
  3. 通道选择器(Channel Selector)
  4. 数据通道(Channel)
  5. Sink处理器(Sink Processor)
  6. Sink(Sink)
  7. 事件序列化(Serialization)

模块组成图如下所示:

Apache Flume 1.7.0 各个模块简介

下面将对各个模块做个简单的介绍,在这之前,有必要先了解一下什么是事件?

在Flume中,所谓的事件指的是Flume数据流中的数据单位,包含header和body,用于存储日志数据,其中header是一个map结构,我们可以往header存放一些信息,如时间戳,appid等,以便后续对事件进行处理,body存放的是收集的日志内容字节流,结构如下图所示:

Apache Flume 1.7.0 各个模块简介

数据源采集(Source)

 先看下source模块在流程图中所处的位置,这里以最简单的架构图来作为示例,如下图所示:

Apache Flume 1.7.0 各个模块简介

Flume source主要功能是消费传递给它的事件;

Flume内置了各种类型的Source,用于处理各种类型的事件,如下所示,理论上Flume支持所有类型的事件,因为Flume支持自定义Source:

  1. Avro Source:支持Avro协议(实际上是Avro RPC)
  2. Thrift Source:支持Thrift协议
  3. Exec Source:基于Unix的command在标准输出上生产数据
  4. JMS Source:从JMS系统中读取数据
  5. Spooling Directory Source:监控指定目录内数据变更
  6. Twitter 1% firehose Source:通过API持续下载Twitter数据,试验性质
  7. Netcat Source:监控某个端口,将流经端口的每一个文本行数据作为Event输入
  8. Sequence Generator Source:序列生成器数据源,生产序列数据
  9. Syslog Sources:读取syslog数据,产生Event,支持UDP和TCP两种协议
  10. HTTP Source:基于HTTP POST或GET方式的数据源,支持JSON、BLOB表示形式(实际上支持任何形式,因为handle可以自定义)
  11. Legacy Sources:兼容老的Flume OG中Source(0.9.x版本)

这里列举几个比较常用的source,

如Exec Source,通过它我们可以监听一个日志文件的变化,如下配置,

a1.sources = r1a1.channels = c1a1.sources.r1.type = execa1.sources.r1.command = tail -F /var/log/securea1.sources.r1.channels = c1

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Apache Flume 1.7.0 各个模块简介

关键词:Apache

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录