本篇内容主要讲解“flume的核心概念介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“flume的核心概念介绍”吧!
核心概念
核心概念:Event
Event是Flume数据传输的基本单元。flume以事件的形式将数据从源头传送到最终的目的。Event由可选的hearders和载有数据的一个byte array构成。
public interface Event {
public Map<String, String> getHeaders();
public void setHeaders(Map<String, String> headers);
public byte[] getBody();
public void setBody(byte[] body);
}
核心概念:Client
Clinet是一个将原始log包装成events并且发送它们到一个或多个agent的实体。
例如
目的是从数据源系统中解耦Flume
在flume的拓扑结构中不是必须的
核心概念:Agent
一个Agent包含Sources, Channels, Sinks和其他组件,它利用这些组件将events从一个节点传输到另一个节点或最终目的。
核心概念:Source
Source负责接收events或通过特殊机制产生events,并将events批量的放到一个或多个Channels。有event驱动和轮询2种类型的Source
不同类型的Source:
和众所周知的系统集成的Sources: Syslog, Netcat
自动生成事件的Sources: Exec, SEQ
用于Agent和Agent之间通信的IPC Sources: Avro
Source必须至少和一个channel关联
核心概念:Channel
Channel位于Source和Sink之间,用于缓存进来的events,当Sink成功的将events发送到下一跳的channel或最终目的,events从Channel移除。
核心概念:Sink
Sink负责将events传输到下一跳或最终目的,成功完成后将events从channel移除。
不同类型的Sinks:
存储events到最终目的的终端Sink. 比如: HDFS, HBase
自动消耗的Sinks. 比如: Null Sink
用于Agent间通信的IPC sink: Avro
必须作用与一个确切的channel
核心概念:Interceptor
用于Source的一组Interceptor,按照预设的顺序在必要地方装饰和过滤events。
核心概念:Channel Selector
Channel Selector允许Source基于预设的标准,从所有Channel中,选择一个或多个Channel
核心概念:Sink Processor
多个Sink可以构成一个Sink Group。一个Sink Processor负责从一个指定的Sink Group中激活一个Sink。Sink Processor可以通过组中所有Sink实现负载均衡;也可以在一个Sink失败时转移到另一个。
Flume通过Sink Processor实现负载均衡(Load Balancing)和故障转移(failover)
内建的Sink Processors:
所有的Sink都是采取轮询(polling)的方式从Channel上获取events。这个动作是通过Sink Runner激活的
Sink Processor充当Sink的一个代理
到此,相信大家对“flume的核心概念介绍”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!