关于flume:flume初识基本概念

40次阅读

共计 1322 个字符,预计需要花费 4 分钟才能阅读完成。

1 定义

Flume 是 Cloudera 提供的一个高可用的,高牢靠的,分布式的海量日志采集、聚合和传输的零碎。Flume 基于流式架构,灵便简略。

2 flume 根底框架

2.1 Agent

Agent 是一个 JVM 过程,它以事件的模式将数据从源头送至目标。

2.2 Source

Source 是负责接收数据到 Flume Agent 的组件。Source 组件能够解决各种类型、各种格局的日志数据,包含 avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。

2.3 Sink

Sink一直 轮询 Channel 中的事件且批量地移除它们,并将这些事件 批量 写入到 存储或索引 零碎、或者被发送到另一个 Flume Agent。

Sink 组件目的地包含 hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定义。

2.4 Channel

Channel 是位于 Source 和 Sink 之间的缓冲区。因而,Channel 容许 Source 和 Sink 运作在不同的速率上。Channel 是线程平安的,能够同时解决几个 Source 的写入操作和几个 Sink 的读取操作。

Flume 自带两种 Channel:Memory Channel 和 File Channel。

Memory Channel 是内存中的队列。Memory Channel 在不须要关怀数据失落的情景下实用。如果须要关怀数据失落,那么 Memory Channel 就不应该应用,因为程序死亡、机器宕机或者重启都会导致数据失落。

File Channel 将所有事件写到磁盘。因而在程序敞开或机器宕机的状况下不会失落数据。

2.5 Event

传输单元,Flume 数据传输的根本单元,以 Event 的模式将数据从源头送至目的地。Event 由 HeaderBody两局部组成,Header 用来寄存该 event 的一些属性,为 K - V 构造,Body 用来寄存该条数据,模式为字节数组。

2.6 Interceptors

在 Flume 中容许应用 拦截器 对传输中的 event 进行拦挡和解决!拦截器 必须实现 org.apache.flume.interceptor.Interceptor接口。拦截器能够依据开发者的设定批改甚至删除 event!Flume 同时反对拦截器链,即由多个拦截器组合而成!通过指定拦截器链中拦截器的程序,event 将依照程序顺次被拦截器进行解决!

2.7 Channel Selectors

Channel Selectors 用于 source 组件将 event 传输给多个 channel 的场景。罕用的有 replicating(默认)和 multiplexing 两种类型。replicating 负责将 event 复制到多个 channel,而 multiplexing 则依据 event 的属性和配置的参数进行匹配,匹配胜利则发送到指定的 channel!

2.8 Sink Processors

用户能够将多个 sink 组成一个整体(sink 组),Sink Processors 可用于提供组内的所有 sink 的负载平衡性能,或在工夫故障的状况下实现从一个 sink 到另一个 sink 的故障转移。

正文完
 0