1.Flume日志采集系统
Flume原是Cloudera公司提供的一个高可用的、高可靠的、分布式海量日志采集、聚合和传输系统,而后纳入到了Apache旗下,作为一个顶级开源项目。Apache Flume不仅只限于日志数据的采集,由于Flume采集的数据源是可定制的,因此Flume还可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。
1.1. Flume运行机制
Flume的核心是把数据从数据源(例如Web服务器)通过数据采集器(Source)收集过来,再将收集的数据通过缓冲通道(Channel)汇集到指定的接收器(Sink)。
Flume基本架构中有一个Agent(代理),它是Flume的核心角色,Flume Agent是一个JVM进程,它承载着数据从外部源流向下一个目标的三个核心组件:Source、Channel和Sink。
三个核心组件的较少
Source(数据采集器)
用于源数据的采集, 然后将采集的数据通过channel流向sink。
Source将数据封装到事件(event)里, 然后传入Channel中, 如下图所示
Channel(缓冲管道)
用于连接source和sink。底层是一个缓冲队列,对Source中的数据进行缓冲, 然后传入到sink中。
Sink(接收器)
接收并汇集l流入sink的数据,根据需求,可以将其集中存储(如存入HDFS)或者作为数据源传入其他服务器或Source中。
1.2.Flume日志采集系统结构
- 简单结构
1.2.Flume日志采集系统结构
- 简单结构
- 复杂结构