Flume | Flume NG架构

2019-07-05  本文已影响0人  icebreakeros

flume ng架构

flume ng架构

event

eventflume数据传输的基本单元
flume以事件的形式将数据从源头传送到最终的目的
event由可选的header和载有数据的一个byte array构成

client

client是一个将原始log包装成events并且发送它们到一个或多个agent的实体。
目的是从数据源系统中解耦flume
flume的拓扑结构中不是必须的

agent

一个agent包含source, channel, sink和其他组件
它利用这些组件将events从一个节点传输到另一个节点或最终目的
agentflume流的基础部分
flume为这些组件提供了配置、生命周期管理、监控支持

agent之source

source负责接收event或通过特殊机制产生event,并将events批量的放到一个或多个channel
包含event驱动和轮询2种类型

不同类型的source:
与系统集成的source: SyslogNetcat
自动生成事件的source: Exec
用于agentagent之间通信的IPC source: AvroThrift
source必须至少和一个channel关联

agent之channel

channel位于sourcesink之间,用于缓存进来的event
sink成功的将event发送到下一跳的channel或最终目的,eventchannel移除
不同的channel提供的持久化水平也是不一样的:
Memory channel: volatile
File channel: 基于WAL(预写式日志Write-Ahead Logging)实现
JDBC channel: 基于嵌入Database实现
channel支持事务,提供较弱的顺序保证
可以和任何数量的sourcesink工作

agent之sink

sink负责将event传输到下一跳或最终目的,成功完成后将eventchannel移除
不同类型的sink:
存储event到最终目的的终端sink. 比如: HDFSHBase
自动消耗的sink. 比如: null sink
用于agent间通信的IPC sink: avro
必须作用于一个确切的channel

interceptor

作用于source,按照预设的顺序在必要地方装饰和过滤events

channel selector

允许source基于预设的标准,从所有channel中,选择一个或多个channel

sink processor

多个sink可以构成一个sink group
sink processor可以通过组中所有sink实现负载均衡
也可以在一个sink失败时转移到另一个

上一篇 下一篇

猜你喜欢

热点阅读