MAPREDUCE服务 MRS-Flume日志采集概述:Flume模块介绍

时间:2024-10-22 09:17:13

Flume模块介绍

Flume客户端/服务端由一个或多个Agent组成,而每个Agent是由Source、Channel、Sink三个模块组成,数据先进入Source然后传递到Channel,最后由Sink发送到下一个Agent或目的地(客户端外部)。各模块说明见表1

表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提供的持久化水平也是不一样的:

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

Channel支持事务特性,可保证简易的顺序操作,同时可以配合任意数量的Source和Sink共同工作。

Sink

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

典型的Sink样例如下:

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

Sink必须关联到一个Channel。

每个Flume的Agent可以配置多个Source、Channel、Sink模块,即一个Source将数据发送给多个Channel,再由多个Sink发送到下一个Agent或目的地。

Flume支持多个Flume配置级联,即上一个Agent的Sink将数据再发送给另一个Agent的Source。

support.huaweicloud.com/cmpntguide-mrs/mrs_01_0391.html