`
gaojingsong
  • 浏览: 1182544 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Flume简介】

阅读更多

一、什么是Flume?
  flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume。

        flume的特点:
  flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力 。
  flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source。

        flume的可靠性 
  当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。),Store on failure(这也是scribe采用的策略,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Besteffort(数据发送到接收方后,不会进行确认)。

        flume的可恢复性:
  还是靠Channel。推荐使用FileChannel,事件持久化在本地文件系统里(性能较差)。 

  flume的一些核心概念:

  • Agent        使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。
  • Client        生产数据,运行在一个独立的线程。
  • Source        从Client收集数据,传递给Channel。
  • Sink        从Channel收集数据,运行在一个独立线程。
  • Channel        连接 sources 和 sinks ,这个有点像一个队列。
  • Events        可以是日志记录、 avro 对象等。



  Flume以agent为最小的独立运行单位。一个agent就是一个JVM。单agent由Source、Sink和Channel三大组件构成,如下图:

                                


  值得注意的是,Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。比如:Channel可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink可以把日志写入HDFS, HBase,甚至是另外一个Source等等。Flume支持用户建立多级流,也就是说,多个agent可以协同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes,这也正是NB之处。如下图所示:
 

0
1
分享到:
评论

相关推荐

    Flume简介及基本使用.md

    Flume简介及基本使用,入门篇

    flume 简介安装使用案例(将log4j数据写到hdfs中)

    ### Flume 简介 Flume 主要由三个核心组件构成: 1. **Sources**:数据的来源,例如 log4j 日志生成器、Web 服务器的访问日志等。 2. **Sinks**:数据的去向,通常是数据存储系统,如 HDFS、HBase 或 Kafka。 3. **...

    hadoop2.0flume简介及安装

    Flume是日志抽取工具,可以将数据通过flume抽取到本地文件系统中、数据库中、HDFS中,还可以抽取到远端的服务区当中,比如华为北京分公司要将数据发送到华为的总部,做分析处理,所以就需要发送到远端服务器上,这个...

    04、日志收集系统Flume-实时计算1-4:flume简介.pptx

    Flume 是一个强大的日志收集系统,主要用于实时数据流的聚合和传输。它在IT行业中被广泛应用,特别是在大数据处理和实时分析场景下。Flume 的设计目标是分布式、可靠和高可用,它允许用户自定义数据源(Source),方便...

    Flume学习文档(1){Flume基本概念、Flume事件概念与原理}.docx

    #### 1.1 Flume简介 Flume是由Cloudera公司开源的一种分布式、可靠且高效的服务,专门用于收集、聚合和移动大量的日志数据。它的设计目标是简化复杂的大规模数据流处理过程,并提供一套灵活且可扩展的体系结构来支持...

    flume在虚拟机上安装,

    #### 一、Flume简介 Flume是一款高可靠、高性能的服务级数据采集工具,主要用于收集日志数据。它最初由Cloudera开发,后捐赠给Apache基金会,目前已成为Apache顶级项目之一。Flume支持在系统中定制各类数据发送方...

    Hadoop中Flume安装指南

    #### 知识点一:Hadoop与Flume简介 - **Hadoop**:一个能够对大量数据进行分布式处理的软件框架,它为用户提供了高扩展性的系统来存储和运行应用程序。 - **Flume**:一款高可靠、高性能的服务,用于收集、聚合和...

    flume自学手册

    #### 一、Flume简介 Flume是Cloudera提供的一款开源、分布式的日志收集系统,具有高度可靠的特性,并能够高效地处理大规模的日志数据。Flume支持定制化的数据发送方(source)、中间缓冲区(channel)以及数据接收...

    大数据Flume学习视频-免费

    #### 一、Flume简介与应用场景 Flume是一种高可靠、高性能的服务,用于收集、聚合和移动大量日志数据。它具有灵活的架构,可以根据不同的需求进行配置,并支持多种数据源类型。Flume广泛应用于大数据处理领域,特别...

    Flume 构建高可用、可扩展的海量日志采集系统

    #### 一、Flume简介 Apache Flume是一款分布式的、可靠的、高可用的系统,用于有效地收集、聚合和移动大量日志数据。Flume的数据流模型具有良好的伸缩性,能够支持在企业内不同节点间传输大量数据。 #### 二、...

    Flume集群搭建

    #### 一、Flume简介 Flume是一款高可靠、高性能的日志采集、聚合和传输的系统,支持在日志系统中定制各类数据发送方(source)、接收方(sink)和数据通道(channel)。Flume的设计理念是支持分布式、可靠和高可用的...

    flume日志采集

    #### 一、Flume简介 Apache Flume是一款高可靠、高性能的日志采集系统,支持在日志系统中定制各类数据发送方(source)、数据通道(channel)以及数据接收方(sink)。Flume提供对数据进行简单处理,并写到各种数据...

    Flume 安装搭建使用.

    一、Flume 简介 Flume 是一个基于流式架构的服务,能够提供高效的日志收集、聚集、移动服务。它可以实时处理大数据量的日志,提供了一个灵活的架构来处理大数据。Flume 只能在 Unix 环境下运行。 二、Flume 角色 ...

    flume安装过程及其配图

    #### 一、Flume简介 Apache Flume是一款高可靠、高性能的服务,用于收集、聚合和移动大量日志数据。Flume支持简单灵活的配置,可以很好地满足多种场景下的数据采集需求。Flume的核心架构包括agent、source、channel...

    flume 调研报告及安装部署

    FLUME 简介 Flume 是由Apache基金会开发的一个数据流处理工具,最初设计用于日志聚合,但后来发展成为一种通用的数据收集系统。它支持多种数据源(source),如网络套接字、syslog、JMS、Kafka等,并能够将这些...

    安装Flume和使用

    #### 一、Flume简介 Apache Flume 是一个分布式的、可靠的、高可用的服务,用于有效地收集、聚合和移动大量日志数据。Flume 支持简单灵活的配置,这使得它可以适用于各种场景中的数据收集需求。它主要应用于大数据...

    大数据框架Sqoop+Flume+Oozie+Hue视频教程

    《大数据框架Sqoop+Flume+Oozie+Hue视频教程》Sqoop+Flume+Oozie+Hue整合大数据视频教程 经典之作 值得珍藏的大数据视频教程。

    Flume日志采集手册.docx

    #### 一、Flume简介 **1、基础描述** Flume是由Cloudera开发的一款开源工具,主要用于大规模的日志数据采集、聚合和传输。其设计之初就是为了处理大规模的数据流,能够高效地从各种来源(如web服务器、应用程序等...

Global site tag (gtag.js) - Google Analytics