是一个开源的日志系统,是一个分布式。可靠性和高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据
Agent:是一个jvm进程,他以时间的形式将数据从源头送至目的地、Agent 主要有 3 个部分组成,Source、Channel、Sink。
Source:负责接收数据到flume的agent的组件,可以处理avro、thrift、exec、jms…一系列日志类型
Sink:sink不断轮询channel中的事件并且批量地移除他们,写入到存储系统或者另一个flume agent
channel:是位于source和sink之间的缓冲区,有基于文件的fliechannel和基于内存的memorychannel(一个安全但是慢,一个快但是不安全)
Event:是flume的基本传输单元,以event的形式将数据从源头送至目的地,event由header和body组成
flume的事务机制类似数据库的事务机制:要么都成功,要么都失败
一个事务负责从source到channel,另一个事务负责从channel到sink
flume是不可能丢失数据的,内部由完善的事务机制,两个环节的事务性保证
flume不会丢失数据,但是可能造成数据的重复,
flume作为高容量并行采集系统次啊用的是at-least-once,造成每个source产生的事件至少到达sink一次,又可能会造成重复
是设置在source和channel之间,source接收到的事件event,拦截器可以进行转换或者删除