Flume 的数据流由事件(Event)贯穿始终。事件是 Flume 的基本数据单位,它携带日志数据(字
节数组形式)并且携带有头信息,这些 Event 由 Agent 外部的 Source 生成,当 Source 捕获事件后
会进行特定的格式化,然后 Source 会把事件推入(单个或多个)Channel 中。你可以把Channel 看
作是一个缓冲区,它将保存事件直到 Sink 处理完该事件。Sink 负责持久化日志或者把事件推向另
一个 Source。
Flume 以 agent 为最小的独立运行单位。
一个 agent 就是一个 JVM。
单 agent 由 Source、Sink 和 Channel 三大组件构成。
如下图所示
组件 | 功能 |
Agent | 使用 JVM 运行 Flume。每台机器运行一个 agent,但是可以在一个 agent 中包含多个 sources 和 sinks。 |
Client |