一、Flume定义
1.什么是Flume?
官方网址:http://flume.apache.org/
Flume是分布式的、可靠的和易用的日志收集系统,用于将大量日志从许多不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储。
特点:可靠性(保证数据不丢失)、可拓展性(各组件数目可拓展)、高性能(高吞吐量、能满足海量数据收集需求)、可管理性(可动态增加、删除组件)
2.发展历史
Flume作为Cloudera开发的实时日志收集系统,在企业中得到广泛的应用。 Flume初始的发行版本目前被统称为Flume OG(original generation),属于Cloudera。 但随着Flume功能的扩展,Flume OG代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来, 对Flume 进行里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为Flume NG(next generation),并纳入Apache旗下 。
二、Kafka架构原理
1.Flume以Agent为最小的独立运行单位
一个Agent就是一个JVM进程
一个Agent由Source、Sink和Channel三大组件和其它组件构成
2.Flume Agent三大组件
Source(源)
收集数据,并传递给Channel
Channel(通道)
将Source传输的数据暂时存放
Sink(接收地)
从Channel接收数据,并写入到指定地址