Flume

一.Flume框架基础
1.Flume在集群中扮演的角色
Flume,Kafka用来实时进行数据收集,Spark,Storm用来实时处理数据,impala用来实时查询,
2.Flume简介:
2.1.Flume提供了一个分布式的,可靠的,对大数据量的日志进行高效收集、聚焦、移动的服务,Flume只能在Unix环境下运行.
2.2.Fume基于流式框架,容错性强,也很灵活简单,主要用于在线实时分析.
2.3.角色
Source:用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel,这个有点类似于Java中IO部分的channel.
Channel:用于桥接Source和Sinks,类似于一个队列.
Sink:从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者HBase)
2.4传输单元
Event:Flume数据传输的基本单元,以事件的形式将数据从源头送到目的地.
2.5传输过程
source监控某个文件,文件产生新的数据,拿到该数据后,将数据封装在一个Event中,并put到channel后commit提交,channel队列先进先出,sink去channel队列中拉取数据,然后写入到hdfs或者HBase中.
Flume
Flume
一个Source的数据可以流向多个管道,也就是多个channel,而channel和sink是一对一的.