小烨收藏Flume NG概述

Posted SureData数烨数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小烨收藏Flume NG概述相关的知识,希望对你有一定的参考价值。

  Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本!!!有的场合下,也把Flume当做一个ETL工具。

  经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。

    

Flume NG 的架构

  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

【小烨收藏】Flume NG概述

  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

【小烨收藏】Flume NG概述

       

    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。

【小烨收藏】Flume NG概述


【小烨收藏】Flume NG概述

一码不扫,
何以扫天下?




以上是关于小烨收藏Flume NG概述的主要内容,如果未能解决你的问题,请参考以下文章

小烨收藏数据仓库Hive 基础知识(Hadoop)

Flume

高可用flume-ng搭建

高可用Hadoop平台-Flume NG实战图解篇

技术干货 | 大数据开发系列之Flume

Flume案例——日志分析采集系统