Apache Flume - 数据流


Flume 是一个用于将日志数据移动到 HDFS 的框架。一般来说,事件和日志数据是由日志服务器生成的,这些服务器上运行着 Flume 代理。这些代理从数据生成器接收数据。

这些代理中的数据将由称为Collector 的中间节点收集。就像代理一样,Flume 中可以有多个收集器。

最后,来自所有这些收集器的数据将被聚合并推送到集中存储,例如 HBase 或 HDFS。下图解释了 Flume 中的数据流。

Flume数据流

多跳流

在 Flume 中,可以有多个代理,并且在到达最终目的地之前,一个事件可能会经过多个代理。这称为多跳流

扇出流

从一个源到多个通道的数据流称为扇出流。它有两种类型 -

  • 复制- 数据将在所有配置的通道中复制的数据流。

  • 多路复用- 数据将被发送到事件标题中提到的选定通道的数据流。

扇入流

数据从多个源传输到一个通道的数据流称为扇入流

故障处理

在 Flume 中,对于每个事件,都会发生两笔交易:一笔在发送方,一笔在接收方。发送者将事件发送到接收者。接收到数据后不久,接收方就会提交自己的事务并向发送方发送“已收到”信号。收到信号后,发送方提交其交易。(发送方在收到来自接收方的信号之前不会提交其事务。)