目录
什么是Flume?
Flume是一种分布式,可靠且可用的系统,用于有效地收集,聚合和移动大量日志数据.
flume 的核心是通过内部组件source把日志信息收集起来,source将日志信息整理封装,通过channel通道缓存数据并发送到目的地sink,当数据完全发送之后,channel的缓存数据删除.
Flume组成
Agent:Agent是Flume最重要的组成部分,Flume系统就是由一个一个的Agent组成的.
Source:Agent的内部组件,用于接收日志数据,并将其封装成一个一个的event,然后传给Channel.
event:Flume系统内部将日志数据封装成event进行传输,event的结构是json串.
Channel:传输通道,被动的接收Source传来的数据,并进行缓存.
Sink:目的地,接收event,并将其拆封成原始数据(也可不拆).
Flume结构图
简单结构
Flume将WebServer产生的日志数据接收到,传输给HDFS进行保存.
复杂结构
多级流动,扇入扇出.
Flume 和kafka的区别:
- Flume作为日志收集端,Kafka作为日志消费端.
- Flume的推送是push,Kafka的推送是pull.
- Flume是管道方式传输,Kafka是消息队列方式传输.