Flume的逻辑架构可分为agent,collector和storage三层。agent负责采集数据,是flume中数据流的产生地,并且,产生的数据流将由agent传输给collector。collector的作用是将多个agent的数据汇总后,加载到storage中。storage是数据存储系统。Flume三层架构如图7-1所示。
图7-1 Flume三层架构
其中,Flume的一些核心概念如下。
(1)Agent。
Agent主要包括含有source、channel和sink三个核心组件,是一个功能完整的数据收集工具,能够将采集到的数据发送到不同的地方。Agent是Flume最小的独立运行单位。Agent核心组成如图7-2所示。
图7-2 Agent核心组成
(2)source。
Source负责收集数据,格式化收集的数据,并将数据封装到事件(event)中,然后将事件推入Channel中。Flume提供了很多内置的Source,如果内置的Source无法满足需要,Flume还支持自定义Source。(www.xing528.com)
(3)Channel。
Channel是一个数据的缓冲区,是数据传输通道,连接Source和Sink的组件,在Sink处理完事件之前,它可以将事件暂存到内存中,也可以持久化到本地磁盘上。
(4)Sink。
Sink是采集数据的传送的目标地,负责从Channel中取出事件,并将数据给别处的文件系统、数据库、HDFS等,也可以发送给其他agent的Source。在日志数据较少时,可以将数据存储在文件系统中,并且设定一定的时间间隔保存数据。
(5)Flume拦截器。
Flume拦截器以chain的形式位于Source和Channel之间,当为Source指定拦截器后,拦截器就根据设定的需求捕获到满足要求的event,不满足要求的数据不会发送到Channel中。其工作流程如图7-3所示。
图7-3 拦截器工作流程
(6)Flume数据流。
Event是Flume一个最小单元的完整数据流,从Source流向Channel,再到Sink。Flume的核心功能是从数据源收集数据并发送到目的地。为了提高可靠性,先缓存数据,在数据到达目的地之后,删除缓存数据。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。