文章目录

  • 1. Flume简介
  • 2. Flume角色
  • 3. Flume传输过程
  • 4. 扇入扇出
  • 5. Source、Channel、Sink的类型总结


1. Flume简介

  • Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务。
  • Flume基于流式架构,容错性强,也很灵活简单。
  • Flume、Kafka用来实时进行数据收集,Spark、Flink用来实时处理数据,impala用来实时查询。

2. Flume角色

Flume(一)—— Flume介绍_HDFS

  • Source
    用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel,这个有点类似于Java IO部分的Channel。
  • Channel
    用于桥接Sources和Sinks,类似于一个队列。
  • Sink
    从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者HBase)。
  • Event
    传输单元,Flume数据传输的基本单元,以事件的形式将数据从源头送至目的地。

3. Flume传输过程

Source监控某个文件或数据流,数据源产生新的数据,拿到该数据后,将数据封装在一个Event中,并put到Channel后commit提交,Channel队列先进先出,Sink去Channel队列中拉取数据,然后写入到目标源(如HDFS)中。

4. 扇入扇出

扇出:一个源,下沉到多个地方
扇入:多个源,下沉到一个地方

一个Source可以对应多个Channel,一个Channel只能对应一个Sink

Source和Channel --> 1/n

Sink和Channel --> 1/1

5. Source、Channel、Sink的类型总结

Flume(一)—— Flume介绍_数据_02