2023年7月9日发(作者:)
flume基本概念导读 Flume NG是⼀个分布式、可靠、可⽤的系统,它能够将不同数据源的海量⽇志数据进⾏⾼效收集、聚合、移动,最后存储到⼀个中⼼化数据存储系统中。由原来的Flume OG到现在的Flume NG,进⾏了架构重构,并且现在NG版本完全不兼容原来的OG版本 经过架构重构后,Flume NG更像是⼀个轻量的⼩⼯具,⾮常简单,容易适应各种⽅式⽇志收集,并⽀持failover和负载均衡。
Flume NG 的架构 Flume NG 的架构图如下所⽰。
Flume NG核⼼概念 Flume的架构主要有以下⼏个核⼼概念: 1、Event:⼀个数据单元,带有⼀个可选的消息头。 2、Flow:Event从源点到达⽬的点的迁移的抽象。 3、Client:操作位于源点处的Event,将其发送到Flume Agent。 4、Agent:⼀个独⽴的Flume进程,包含组件Source、Channel、Sink。 5、Source:⽤来消费传递到该组件的Event。 6、Channel:中转Event的⼀个临时存储,保存有Source组件传递过来的Event。 7、Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下⼀个Agent(如果有的话)
下⾯我分别介绍以上⼏个核⼼的概念 1、Event 1、Event 是Flume数据传输的基本单元。 2、Flume 以事件的形式将数据从源头传输到最终的⽬的。 3、Event 由可选的header和载有数据的⼀个byte array构成。 1)载有的数据对Flume是不透明的。 2)Header 是容纳了key-value字符串对的⽆序集合,key在集合内是唯⼀的。 3)Header 可以在上下⽂路由中使⽤扩展。
2、Client 1、Client 是⼀个将原始log包装成events并且发送它们到⼀个或者多个agent的实体。 2、Client 在Flume的拓扑结构中不是必须的,它的⽬的是从数据源系统中解耦Flume
3、Agent 1、⼀个Agent包含Source、Channel、Sink和其他组件。 2、它利⽤这些组件将events从⼀个节点传输到另⼀个节点或最终⽬的地。 3、agent是Flume流的基础部分。 4、Flume 为这些组件提供了配置、⽣命周期管理、监控⽀持。
4、Agent之Source 1、Source负责接收event或通过特殊机制产⽣event,并将events批量的放到⼀个或多个Channel。 2、Source包含event驱动和轮询两种类型。 3、Source 有不同的类型。 1)与系统集成的Source:Syslog,NetCat。 2)⾃动⽣成事件的Source:Exec 3)⽤于Agent和Agent之间的通信的IPC Source:Avro、Thrift。 4、Source必须⾄少和⼀个Channel关联。
5、Agent之Channel与Sink
6、Agent之Channel 1、Channel位于Source和Sink之间,⽤于缓存进来的event。 2、当Sink成功的将event发送到下⼀跳的Channel或最终⽬的地,event才Channel中移除。 3、不同的Channel提供的持久化⽔平也是不⼀样的: 1)Memory Channel:volatile。 2)File Channel:基于WAL实现。 3)JDBC Channel:基于嵌⼊Database实现。 4、Channel⽀持事物,提供较弱的顺序保证。 5、Channel可以和任何数量的Source和Sink⼯作。
7、Agent之Sink 1、Sink负责将event传输到下⼀跳或最终⽬的,成功完成后将event从Channel移除。 2、有不同类型的Sink: 1)存储event到最终⽬的的终端Sink。⽐如HDFS,HBase。 2)⾃动消耗的Sink。⽐如:Null Sink。 3)⽤于Agent间通信的IPC sink:Avro。 3、Sink必须作⽤于⼀个确切的Channel。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688907045a182266.html
评论列表(0条)