Flume_基础

92 阅读1分钟

Flume的定义

Flume 是一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统。即是日志采集和汇总的工具。

Flume的优势

可以高速采集数据,采集的数据能够以想要的文件格式及压缩方式存储在HDFS上。 事务功能保证了数据在采集的过程中数据不丢失。 部分 Source 保证了 Flume 挂了以后重启依旧能够继续在上一次采集点采集数据,真正做到数据零丢失。 

Flume的组成

  1. Source(源端数据采集):Flume 提供了各种各样的 Source 、同时还提供了自定义的 Source。
  2. Channel (临时存储聚合数据):主要用的是Memory Channel和 File Channel(生产最常用),生产中 Channel 的数据一定是要监控的,防止Sink挂了,撑爆Channel。
  3.  Sink(移动数据到目标端):如HDFS、KAFKA、DB以及自定义的 Sink。 

Flume的架构

Agent配置使用案列

  1. Flume 的使用其实就是 Source、Channel、Sink 的配置。
  2.  Agent=Source+Channel+Sink,其实 Agent 就是 Flume 的配置文件。
  3.  一个配置文件可以配置多个 Agent 的。
  4.  Event:Flume 数据传输的最小单位,一个 Event 就是一条记录,由 Head 和 Body两个部分组成,Head 存储的是管道,Body 存储的是字节数组。