Flume基础知识
什么是Flume
个人理解是个 分布式的日志传输工具
Flume的组件
Agent
- agent就是一个启动的flumejvm进程,负责数据流的传输
- agent可以定义多个组件,常用的是source,channel,sink
source
source负责数据源的对接,根据数据源的类型不同,需要使用不同类型的source
- 监控某个端口数据:netcat source
- 监控某个目录,一旦有新文件就上传:spooling directory source
- 监控某个目录日志的变化:tairdir source
- 对接上一个agent:avro source
sink
sink负责将数据写入到指定的输出位置,根据输出目的地的不同,需要使用不同的sink。一个sink只能去一个channel取数据。
- 使用loooger记录到文件或者控制台:logger sink
- 将数据写入到HDFS:HDFS sink
- 将数据写入HBase: HBase sink
- 将数据写入到文件中:File sink
- 将数据写入到下一个agent:Avro sink
channel
是source和sink的连接,负责缓冲event,source将数据放入到channel,sink主动从channel取,当sink成功从channel取出数据后,channel的event会被删除。
flume中有三种 channel,分别为Memory Channel、File Channel以及Kafka。根据字面意思,memmory 模式中event保存在内存中,但是会丢失数据。file模式event是存储在硬盘中,可靠但是速度慢 。
event
event是flume数据传输的基本单位,由map和byte[]组成。
channel selector
一个source需要向多个channel写入数据时,需要使用channel selector选择合适的channel,常用两个类型
- replication:复制的选择器,所有channel都写入一样的数据
- multiplexing:根据event的信息和配置的参数进行匹配,匹配成功放到指定的channe
sinkprocessor
多个sink组成一个sink组,每个sink只能指定一个channel,当多个sink对应相同的channel时,需要配置sinkprocessor决定event分配给哪一个sink
相关推荐
chenguangchun 2020-07-26
myt0 2020-02-13
chenguangchun 2019-12-28
myt0 2020-07-18
IT影风 2020-07-18
chenguangchun 2020-06-28
jiaomrswang 2020-06-26
myt0 2020-06-16
xiaoxiaojavacsdn 2020-06-08
zzjmay 2020-06-07
strongyoung 2020-06-04
ErixHao 2020-05-20
啦啦啦啦啦 2020-05-15
wanfuchun 2020-05-14
onwaygoahead 2020-05-05
chenguangchun 2020-04-18
QAnyang 2020-03-14