Flume介绍
Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发方,
用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能。
Flume采用了分层架构:分别为agent,collector和storage。其中,agent和collector均由两部分
组成:source和sink,source是数据来源,sink是数据去向。
下图 是他的逻辑架构:
其中:
agent的作用是将数据源的数据发送给collector。
collector的作用是将多个agent的数据汇总后,加载到storage中。
storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE,HBase,分布式存储等。
Master是管理协调agent和collector的配置等信息,是flume集群的控制器。
Flume使用两个组件:
Master和Node,Node根据在Master shell或web中动态配置,决定其是作为Agent还是Collector。
agent逻辑理解:
Flume既然是一个收集系统,那么就需要有来源和去处
这就有了source(来源) 和 sink(存储的目的地) 的概念。
此外, 如果只有source和sink,那么就要面临着网络传输失败,信息丢失的风险,
于是就有了 channel(通道)的概念 : 只有当临时存放在channal中的数据成功传输
到sink后, channel中的数据才会被删除。