一个flume进程就是一个agent=source+channel+sink
在source channel sink之间流动的是list[exent]
event=header+byte payload,一般header是空的,传输数据的单位
flume串联的坏处:一个坏了全坏
好处:多级缓冲
处理复杂的逻辑
chanel处理器不宜进行太复杂的逻辑,不然太耗费性能,一般就进行掐头去尾
channel选择器:选择数据去往哪个channel
sink处理器:选择其中一个sink去获取channel数据 可以采用轮询或负载均衡
2.flume优缺点:
优点:
1.百搭,可以和任意存储进程集成
2.当输入的数据速率大于写入的速率时,flume可以进行缓冲,减小hdfs的压力
3.flume输入输出各有一事务,putlist takelist
保证数据可靠性:数据进来的,flume只要返回成功那么数据一定是存进来了,数据出来的时候,只有flume
确认数据成功发出才会删除数据
缺点:
由于其强保证数据不丢失,那么就会造成数可能会重复,因为你确保数据不丢,只要
出了一点差错整个list就会重新请求再发一次,或者再往外写一次