Flume介绍
概述
Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
版本
版本 | 统称 | 说明 |
---|---|---|
Flume0.9X | Flume-og | 老版本的Flume-og需要引入zookeeper集群管理,性能比较低(单线程工作) |
Flume1.X | Flume-ng | 重构后的Flume-ng,脱离了zookeeper的依赖,当前使用flume基本使用的Flume-ng |
运行环境需求
JDK1.6以上,推荐JDK1.7或1.8
Flume架构
- flume的核心是把数据从数据源source整理收集,发送到指定的目的地sink,为了确保输送过程成功,在发送sink目的地之前,先缓存数据在channel,待数据确认到达目的地sink后,flume再从channel中删除数据缓存。
- flume的数据传输,使用的event,event在source中通过把数据进行封装,作为数据的传输的基本单位,从source流向channel最终流向sink。
- event包括:1.event headers 2.event body 3.event 信息(即文本文件的单行记录,也可以简单理解为单行的日志记录)
Flume运行机制
- Flume分布式系统中最核心的角色是agent(代理),agent本身是个java进程,flume采集系统就是由一个个agent所连接起来形成
- 每一个agent相当于一个数据传递员,内部有三个组件:source组件,channel组件,sink组件
- 整体架构类似:生产者,仓库,消费者