Apache Flume - 数据流

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

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

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

Flume 数据流

Multi-hop Flow(多跳流)

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

Fan-out Flow(扇出流)

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

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

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

Fan-in Flow(扇入流)

将数据从多个源传输到一个通道的数据流称为Fan-in Flow(扇入流)

失败处理

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