一、Flume介绍
1、Flume的概述(情报人员)
(1)Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
(2)Flume可以采集文件, socket数据包等各种形式源数据,又可以将采集到的数据输出到
HDFS、hbase、hive、kafka等众多外部存储系统中
(3)一般的采集需求,通过对 flume的简单配置即可实现
(4)Flume针对特殊场景也具备良好的自定义扩展能力,因此, flume可以适用于大部分的日常数
据采集场景
2、运行机制
(1)Flume分布式系统中最核心的角色是 agent,Flume采集系统就是由一个个 agent所连接起来形
成
(2)每一个 agent相当于一个数据传递员,内部有三个组件:
Source :采集源,用于跟数据源对接,以获取数据
Channel :主要提供一个队列的功能,对 source提供中的数据进行简单的缓存并传递到 Sink
中
Sink :下沉地,采集数据的传送目的,用于往下一级 agent传递数据或者往最终存储系统传
递数据
如图所示:
3、采集结构
(1)Flume的核心组件 Source的使用:
Flume提供了各种 source的实现,包括 Avro Source 、Exce Source、Spooling Directory
Source、NetCat Source 、Syslog Source 等
对现有系统影响最小的是 Exec Source和Spool Source 这两种方式:
其中Exec Source是以运行 Linux命令的方式,持续的按照文件名输出最新的数据,如 tail -F 文
件名指令
而Spool Source 是监测配置的目录下新增的文件,并将文件中的数据读取出来
两种模式的比较:
①ExecSource可以实现对日志的实时收集,但是存在 Flume不运行或者指令执行出错时,将无法收
集到日志数据,无法保证日志数据的完整性
②SpoolSource虽然无法实现实时的收集数据,但是可以使用以分钟的方式分割文件,趋近于实时
③总结:如果应用无法实现以分钟切割日志文件的话,可以两种收集方式结合使用
(2)Flume的核心组件 Sink的使用:
Flume也提供了各种
Source/数据/Flume/采集/系统/日志/文件/收集/agent/方式/
Source/数据/Flume/采集/系统/日志/文件/收集/agent/方式/
-->