MAPREDUCE服务 MRS-通过Flume采集指定目录日志系统文件至HDFS:方案架构

时间:2024-10-18 16:17:22

方案架构

Flume-NG由多个Agent来组成,而每个Agent由Source、Channel、Sink三个模块组成,其中Source负责接收数据,Channel负责数据的传输,Sink则负责数据向下一端的发送。

图1 Flume-NG架构
表1 模块说明

名称

说明

Source

Source负责接收数据或通过特殊机制产生数据,并将数据批量放到一个或多个Channel。Source的类型有数据驱动和轮询两种。

典型的Source类型如下:

  • 和系统集成的Sources:Syslog、Netcat。
  • 自动生成事件的Sources:Exec、SEQ。
  • 用于Agent和Agent之间通信的IPC Sources:Avro。

Source必须至少和一个Channel关联。

Channel

Channel位于Source和Sink之间,用于缓存来自Source的数据,当Sink成功将数据发送到下一跳的Channel或最终目的地时,数据从Channel移除。

Channel提供的持久化水平与Channel的类型相关,有以下三类:

  • Memory Channel:非持久化。
  • File Channel:基于WAL(预写式日志Write-Ahead Logging)的持久化实现。
  • JDBC Channel:基于嵌入Database的持久化实现。

Channel支持事务,可提供较弱的顺序保证,可以和任何数量的Source和Sink工作。

Sink

Sink负责将数据传输到下一跳或最终目的,成功完成后将数据从Channel移除。

典型的Sink类型如下:

  • 存储数据到最终目的终端Sink,比如:HDFS、HBase。
  • 自动消耗的Sink,比如:Null Sink。
  • 用于Agent间通信的IPC sink:Avro。

Sink必须作用于一个确切的Channel。

Flume也可以配置成多个Source、Channel、Sink,如图2所示:

图2 Flume结构图
support.huaweicloud.com/bestpractice-mrs/mrs_05_0051.html