flume是一个高可用,高可靠的,分布式的日志收集工具
组件介绍
从一个webserver读取到对应的日志数据,经过Flume的agent之后,将数据写入到hdfs中,agent中包含了三个核心的组件,分别是source,channel,sink。
event
event是flume数据传输的基本单元
flume是以事件的形式将数据从源头传送到最终的目的
event由可选的header和载有数据的byte array构成
source
source负责接收event或通过特殊机制产生event,并将events批量的放到一个或多个channel。
包含event驱动和轮询两种类型
source必须至少和一个channel关联
有不同类型的source
channel
channel架构
channel位于source和sink之间,用于缓存进来的event
当sink成功的将event发送到下一跳的channel或最终目的,event从channel移除
不同的channel提供的持久化水平也是不一样:1、memory channel 2、File Channel 3、JDBC channel
channel支持事务
可以和任何数量的source和sink工作
sink
sink负责将event传输到下一跳或最终目的,成功完成后将event从channel移除
有不同的sink
必须作用于一个确切的channel
总的流程
若有错误请务必指出纠正!!谢谢