Flume 概念理解
flume最一个可靠的、分布式的和高可用的海量日志采集、聚合和传输的系统。
- Client:生产数据,运行在独立的线程
- Event:事件,即一个数据单元,也就是每次发送的一个数据或消息(由消息头和消息体组成)。
- Flow:event从数据发送方到接收方迁移的一个抽象过程。–数据传输流向
- Agent:一个独立的Flume进程,处理event,也是数据传输的基本单元,包含组件Source、Channel、Sink。(Agent使用JVM运行Flume,每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks)
- Source:数据收集组件,作为agent的数据来源,与event的数据发送方对应。–从Client收集数据,传递给Channel。
- Channel:作为数据在agent中的临时存储,保存有Source组件传递过来的event。
- Sink:作为对Source传输到Channel中的event数据的消费,将event数据传输到对应的数据接收方(也可以将event数据传输给下一个Agent,形成Agent PipeLine)。–Sink从Channel收集数据,运行咋一个独立线程。
规则:
- 每个Source可以传递多个Channel
- 每个Channel可以接收多个Source发送的Event,也可以将Event传输给多个Sink
- 一个Sink只能消费一个Channel中的Event数据
- 当Source接收的是一个Agent来源的数据时,它的数据格式和响应配置要和上一个Agent的数据格式及配置一致