flume的核心概念介绍-成都快上网建站

flume的核心概念介绍

本篇内容主要讲解“flume的核心概念介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“flume的核心概念介绍”吧!

成都创新互联公司专注于企业成都全网营销、网站重做改版、祁东网站定制设计、自适应品牌网站建设、H5高端网站建设商城网站定制开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为祁东等各大城市提供网站开发制作服务。

核心概念

  • Event

  • Client

  • Agent

    • Sources、Channels、Sinks

    • 其他组件:Interceptors、Channel Selectors、Sink Processor

核心概念:Event

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

  • 载有的数据对flume是不透明的

  • Headers是容纳了key-value字符串对的无序集合,key在集合内是唯一的。

  • Headers可以在上下文路由中使用扩展

public interface Event {  

    public Map getHeaders();  

    public void setHeaders(Map headers);  

    public byte[] getBody();  

    public void setBody(byte[] body);  

}  

核心概念:Client

Clinet是一个将原始log包装成events并且发送它们到一个或多个agent的实体。

  • 例如

    • Flume log4j Appender

    • 可以使用Client SDK (org.apache.flume.api)定制特定的Client

  • 目的是从数据源系统中解耦Flume

  • 在flume的拓扑结构中不是必须的

核心概念:Agent

一个Agent包含Sources, Channels, Sinks和其他组件,它利用这些组件将events从一个节点传输到另一个节点或最终目的。

  • agent是flume流的基础部分。

  • flume为这些组件提供了配置、生命周期管理、监控支持。

核心概念: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移除。

  • 不同的Channels提供的持久化水平也是不一样的:

    • Memory Channel: volatile

    • File Channel: 基于WAL(预写式日志Write-Ahead Logging)实现

    • JDBC Channel: 基于嵌入Database实现

  • Channels支持事务

  • 提供较弱的顺序保证

  • 可以和任何数量的Source和Sink工作

核心概念:Sink

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

  • 不同类型的Sinks:

    • 存储events到最终目的的终端Sink. 比如: HDFS, HBase

    • 自动消耗的Sinks. 比如: Null Sink

    • 用于Agent间通信的IPC sink: Avro

  • 必须作用与一个确切的channel

核心概念:Interceptor

用于Source的一组Interceptor,按照预设的顺序在必要地方装饰和过滤events。

  • 内建的Interceptors允许增加event的headers比如:时间戳、主机名、静态标记等等

  • 定制的interceptors可以通过内省event payload(读取原始日志),在必要的地方创建一个特定的headers。

核心概念:Channel Selector

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

  • 内建的Channel Selectors:

    • 复制Replicating: event被复制到相关的channel

    • 复用Multiplexing: 基于hearder,event被路由到特定的channel

核心概念:Sink Processor

多个Sink可以构成一个Sink Group。一个Sink Processor负责从一个指定的Sink Group中激活一个Sink。Sink Processor可以通过组中所有Sink实现负载均衡;也可以在一个Sink失败时转移到另一个。

  • Flume通过Sink Processor实现负载均衡(Load Balancing)和故障转移(failover)

  • 内建的Sink Processors:

    • Load Balancing Sink Processor – 使用RANDOM, ROUND_ROBIN或定制的选择算法

    • Failover Sink Processor 

    • Default Sink Processor(单Sink)

  • 所有的Sink都是采取轮询(polling)的方式从Channel上获取events。这个动作是通过Sink Runner激活的

  • Sink Processor充当Sink的一个代理

到此,相信大家对“flume的核心概念介绍”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


名称栏目:flume的核心概念介绍
链接分享:http://kswjz.com/article/jedgis.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流