美文网首页
Flume(一)概述

Flume(一)概述

作者: 万事万物 | 来源:发表于2021-05-30 07:23 被阅读0次

Flume图标

Flume图标

Flume定义

Apache Flume是一个分布式,可靠且可用的系统,用于有效地收集,\color{red}{聚合大量日志数据并将其从许多不同的源移动到集中式数据存储中}
Apache Flume 的使用不仅限于日志数据聚合。由于数据源是可定制的,因此 Flume 可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。

流程图 Apache Flume是Apache Software Foundation的顶级项目。

Flume基础架构

Flume 事件被定义为一个数据流单元,它具有一个字节负载和一组可选的字符串属性。Flume 代理是一个 (JVM) 进程,它承载着事件从外部源流到下一个目的地(跃点)所通过的组件。 数据流模型

Flume 源使用由外部源(如 Web 服务器)传递给它的事件。外部源以目标 Flume 源可识别的格式将事件发送到 Flume。例如,Avro Flume 源可用于从 Avro 客户端或流中的其他 Flume 代理接收 Avro 事件,这些代理从 Avro 接收器发送事件。可以使用 Thrift Flume Source 定义类似的流程,以从 Thrift Sink 或 Flume Thrift Rpc Client 或用 Flume thrift 协议生成的任何语言编写的 Thrift 客户端接收事件。当 Flume 源接收到事件时,它会将其存储到一个或多个频道。通道是一个被动存储,它保存事件直到它被 Flume 接收器消耗。文件通道就是一个示例–由本地文件系统支持。接收器从通道中删除事件并将其放入像 HDFS 这样的外部存储库(通过 Flume HDFS 接收器)或将其转发到流中的下一个 Flume 代理(下一跳)的 Flume 源。给定代理中的源和接收器与通道中暂存的事件异步运行。

Agent

Agent是一个JVM进程,它以\color{red}{事件}的形式将数据从源头送至目的。
Agent主要有3个部分组成,\color{red}{Source}、\color{red}{Channel}、\color{red}{Sink}

Source

Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括\color{red}{avro}、thrift、\color{red}{exec}、jms、\color{red}{spooling directory}、\color{red}{netcat}、sequence generator、syslog、http、legacy。

Sink

Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume Agent。

Sink组件目的地包括\color{red}{hdfs}、\color{red}{logger}、\color{red}{avro}、thrift、ipc、\color{red}{file}、\color{red}{HBase}、solr、自定义。
若sink 发送失败,会将数据重新写入Channel ,这里涉及到Flume 的事务(回滚)

Channel

Channel是位于Source和Sink之间的缓冲区。因此,Channel允许Source和Sink运作在不同的速率上。\color{red}{Channel是线程安全的},可以同时处理几个Source的写入操作和几个Sink的读取操作。

Flume自带两种Channel:\color{red}{Memory Channel}和\color{red}{File Channel}

Memory Channel是内存中的队列。Memory Channel在不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么Memory Channel就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。

File Channel将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

Event

传输单元,Flume数据传输的基本单元,以Event的形式将数据从源头送至目的地。Event由HeaderBody两部分组成,Header用来存放该event的一些属性,为K-V结构,Body用来存放该条数据,形式为字节数组。

event存储形式

相关文章

  • Flume(一)概述

    Flume图标 Flume图标 Flume定义 Apache Flume是一个分布式,可靠且可用的系统,用于有效地...

  • 分布式日志收集器 - Flume

    Flume概述 官方文档: https://flume.apache.org/documentation.html...

  • Flume概述

    题记 本文内容来源于拉钩教育大数据高薪训练营 Flume的定义 Flume由Cloudera公司开发,是一个分布式...

  • Flume概述

    无论数据来自什么企业,或是多大量级,通过部署Flume,可以确保数据都安全、 及时地到达大数据平台,用户可以将精力...

  • 大数据学习之flume

    一.flume概述 1.概述: Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据。...

  • Flume快速入门

    一、Flume简介 1.1 Flume概述: Flume是开源日志系统。是一个分布式、可靠性和高可用的海量日志聚合...

  • Flume

    日志采集框架Flume 1 Flume介绍 1.概述 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和...

  • flume

    本文只是简单介绍Flume,主要目的是想知道Flume可以做什么,内容主要来源官网 概述 Apache Flume...

  • Flume 入门

    Flume 概述 Flume 官网 Flume 是一个分布式的,高可靠的,高可用的服务去高效的收集,聚合并移动大量...

  • Flume 实战

    概述 Flume官网配置文档 使用Flume的关键就是写配置文件A) 配置SourceB) 配置ChannelC)...

网友评论

      本文标题:Flume(一)概述

      本文链接:https://www.haomeiwen.com/subject/jgqysltx.html