每日积累学习
Flume的基础架构
Source
负责接收数据到flume Agent的组件;可以处理各种类型、各种格式的日志数据,avro、thrift exec jms spooling directory netcat sequece syslog http legacy
Channel
它是位于Source和Sink之间的缓冲区。
channel是线程安全的,可同时处理几个Source的写入操作和几个Sink的读取操作
Flume自带channel:
Memory Channel:内存中的队列,在不关心数据丢失的情境下适用
File Channel:容错性高,将所有的时间写入磁盘。
Sink
不断的轮询Channel中的事件且批量地移除它们,将这些事件写入存储 或者另一个Agent
Sink组件的目的地:hdfs , logger, avro , thrift, file, HBase solr
Event
Flume数据传输的基本单元,Event由Header和Body两部分组成;Header用来存放event的一些属性,K-V结构
Body 用来存放该条数据 形式为字节数组
Flume的进阶原理
1)ChannelSelector
作用:决定Event 该发往哪个channel,方式有两种 replicating(发往所有的channel) 和multiplexing(根据需要将不同的event发往不同的channel)
2)SinkProcessor
DefaulrSinkProcessor
LoadBalanceSinkProcessor
FailoverSinkProcessor