Flume - 初识
一、基本架构
Flume-NG 采用三层架构设计:收集(Source)、暂存(channel)和处理(Sink)。
flume架构.png-107.7kB
一个event在一个agent中传输的顺序为:
Source -> Interceptor -> Selector -> Channel -> Sink Processor -> Sink -> 中心存储/下一级agent
二、核心概念
- Event: 一条消息或者说是一条数据,具有可选头信息,在头信息中可以设置时间戳、主机名称等信息。
- Source: 数据源,接收或者收集不同形式的数据源。
- Channel: event的临时缓冲区,source先将event发送到chanel缓存等待sink消费。
- Sink: 从channel获取event并发送到中心存储或者下一级agent。
- Agent: 包含source、channel、sink等组件的flume进程。
- Interceptor: event拦截器,根据配置文件在event的header中添加时间戳、主机名称等信息。
- Selector: event选择器,event选择流入channel的方式,flume提供了复制(replicating)和复用(multiplexing)选择器。
- Sink Processor: event sink处理器,flume提供了故障转移处理器和负载均衡处理器。
三、组件简介
3.1 Source
Source用于对接各种数据源,将收集到的事件发送到临时存储Channel中。
常用的source类型有:Avro Source、Exec Source、Kafka Source、Taildir Source、Spooling Directory Source等
3.2 Channel
Channel被设计为Event中转临时缓冲区,存储Source收集并且没有被Sink读取的Event,为平衡Source收集和Sink读取数据的速度,可视为Flume内部的消息队列。Channel线程安全并且具有事务性,支持source写失败重复写和sink读失败重复读等操作。
常用的Channel类型有Memory Channel、File Channel、Kafka Channel等。
3.3 Sink
常用的类型为 Avro Sink、HDFS Sink、Kafka Sink
四、配置别名
<center> flume配置别名.png-18.9kB</center>
网友评论