Flume概念

一、概念:

Flume: 分布式日志收集系统,支持接收多种数据来源,可以对日志信息进行简单处理,然后写出到数据存储系统中。
特点:灵活

重要概念(5个):
  • Event: 事件,数据载体,flume使用Agent将一批日志数据包装成为一个event进行传输处理,其结构非常简单,就是json串。Eg:{“headers”:info(自定义些内容),”body”:info(日志本身)}其中header中的数据是我们自定义的一些内容,或者默认的内容。Body中的数据就是日志本身。
  • Agent: 代理,由Source,Channel和Sink三部分组成。flume使用Agent完成包装、承载、传输event到目的地。
  • Source: 数据源,Agent接收日志信息并将其包装为一个一个的event,传到channel中。
  • Channel: 通道,被动接收source传来的数据,并将其暂时存储(缓存),等待sink的消费。
  • Sink: 水槽,指定该agent数据传输的目的地,消费channel中的数据到目的地。

利用flume将webserver产生的日志,传输到HDFS中保存的过程:
Flume概念

二、Flume的多级流动:

Flume概念

三、Flume的扇入扇出:
  1. 扇入:多个数据来源一起流进同一个agent中:
    Flume概念

  2. 扇出:一个agent中的数据流向多个数据出处:
    Flume概念

四、Flume的优势:

基于flume的多级流动,扇入扇出,可以实现非常复杂的拓扑结构,适应处理几乎任何场景的数据。
Flume概念