前言

Flume MCPT 考试易错点整理,供期末考试复习使用。


一、基础概览(Basic concepts)

(一)核心定义

Apache Flume 是分布式、高可靠、高可用的工具,用于从多源收集、聚合、传输大量日志数据至中央数据仓库,为 Apache 顶级项目(ASF top-level project)。

补充:支持自定义数据发送 / 接收端,可简单处理数据后写入各类存储(如 HDFS、HBase)。

(二)版本区分(Version Distinction)

1.Flume 0.9X 版本

统称Flume-og(Original Generation)
特性:依赖 Master + Zookeeper 实现中心化管理,保障配置一致性。

2.Flume 1.X 版本

统称Flume-ng(Next Generation)
特性:移除中心化管理,改为 Agent 去中心化运行;是当前主流版本。


二、核心架构与组件

(一)核心数据单元(Core Data Unit)

1.Event

Flume 数据传输的最小单元,包含可选的message header(元数据)和body(实际数据)。

(二)Agent 组成(Agent Composition)

1.Source

数据采集端,消费外部系统数据并封装为 Event。

2.Channel

Source 与 Sink 间的缓冲队列(buffer/queue),临时存储 Event。

3.Sink

数据输出端,从 Channel 读取 Event 并传输至目标(下一个 Agent / 存储系统)。

(三)Source 组件 易错点

1.Exec Source

功能:启动时运行指定Unix/Linux 命令,读取其标准输出作为数据。

易错点:进程退出则 Source 停止,数据可能丢失;不支持 Windows 命令。

2.Spooling Directory Source

功能:监控指定目录的新文件,读取后标记(重命名 / 删除)已处理文件。

易错点:要求文件是unique 且 immutable(唯一、不可修改);重启 / 宕机不会丢失数据(比 Exec Source 可靠)。

3.Taildir Source

功能:近实时(near-real time)监控文件新增行,记录读取位置(JSON 格式)。

易错点:支持文件轮转(file rotation),重启后从记录位置继续;是可靠的实时采集 Source

4.其他 Source:

Kafka Source:作为 Kafka 消费者读取 Topic 数据;
HTTP Source:通过 HTTP POST/GET 接收数据,由 Handler 转换为 Event。

(四)Channel 组件

1.本质

Source 与 Sink 间的缓冲队列(queue),Event 由 Source 写入、Sink 消费后删除。

2.类型

(1)Memory Channel

功能:event存储在内存,吞吐高。
易错点:宕机时内存中 Event 全部丢失,无持久性;适用于 “高吞吐、可容忍丢失” 场景。

(2)File Channel

功能:event存储在磁盘(disk)。
易错点:用于需要 durability(持久性) 的场景,宕机后数据不丢失。

(五)Sink 组件

1.配置易错:

一个 Sink 只能连接 1 个 Channel;而一个 Source 可以连接多个 Channel。

2.常见类型:

(1)Null Sink

丢弃所有从 Channel 读取的 Event,用于测试 / 调试。

(2)HDFS Sink

将 Event 写入 HDFS,支持文本 / 序列文件及压缩。

(3)Kafka Sink

Flume 向 Kafka Topic 写数据(注意:此时 Flume 是生产者,非消费者)。


三、关键特性与配置

(一)事务保障(Transaction Guarantee)

Flume 的 pipeline 基于Transactions(事务),保障数据传输一致性(Source 写入 / Sink 读取均通过事务确认)。

易错点:这是可靠传输的核心,非依赖压缩 / 加密。

(二)扇出(Fan-out)配置

1.默认选择器类型:Replicating(复制型)

功能:将每个 Event 复制到所有关联 Channel。

2.可选选择器类型:Multiplexing(多路复用型)

功能:按 Event 的 Header 信息路由到指定 Channel。
易错点:默认是 Replicating,非 Routing/Filtering。

3.场景选型易错点

需持久化:选 File Channel + 可靠 Source(如 Spooling Directory/Taildir)。

高吞吐但可容忍丢失:选 Memory Channel + Exec Source。


总结

以上就是flume MCPT中总结的一些易错点 供期末考试复习使用

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐