`
yo8237233
  • 浏览: 60974 次
  • 来自: 深圳
社区版块
存档分类
最新评论

Flume应用场景及架构原理

阅读更多
Flume概念

Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

flume 特点:



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

2、可扩展性
Flume采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。

3、可管理性
所有agent和colletor由master统一管理,这使得系统便于维护。多master情况,Flume利用ZooKeeper和gossip,保证动态配置数据的一致性。用户可以在master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。Flume提供了web 和shell script command两种形式对数据流进行管理。

4、功能可扩展性
用户可以根据需要添加自己的agent,collector或者storage。此外,Flume自带了很多组件,包括各种agent(file, syslog等),collector和storage(file,HDFS等)。

5、文档丰富,社区活跃
Flume 已经成为 Hadoop 生态系统的标配,它的文档比较丰富,社区比较活跃,方便我们学习。

Flume OG 与 Flume NG 的对比
1、Flume OG

Flume OG:Flume original generation 即Flume 0.9.x版本,它由agent、collector、master等组件构成。

2、Flume NG

Flume NG:Flume next generation ,即Flume 1.x版本,它由Agent、Client等组件构成。

3、Flume NG版本的优点

1)相对于Flume OG版本,Flume NG版本代码比较简单。

2)相对于Flume OG版本,Flume NG版本架构简洁。

Flume NG基本架构
Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本。经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。

Flume NG 的架构图如下所示。



Flume NG核心概念
Flume的架构主要有一下几个核心概念:
1、Event:一个数据单元,带有一个可选的消息头。
2、Flow:Event从源点到达目的点的迁移的抽象。
3、Client:操作位于源点处的Event,将其发送到Flume Agent。
4、Agent:一个独立的Flume进程,包含组件Source、Channel、Sink。
1)、Source:用来消费传递到该组件的Event。
2)、Channel:中转Event的一个临时存储,保存有Source组件传递过来的Event。
3)、Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)或者数据持久化。

Event
1、Event 是Flume数据传输的基本单元。
2、Flume 以事件的形式将数据从源头传输到最终的目的。
3、Event 由可选的header和载有数据的一个byte array构成。
1)载有的数据对Flume是不透明的。
2)Header 是容纳了key-value字符串对的无序集合,key在集合内是唯一的。
3)Header 可以在上下文路由中使用扩展。

Client
1、Client 是一个将原始log包装成events并且发送它们到一个或者多个agent的实体。
2、Client 在Flume的拓扑结构中不是必须的,它的目的是从数据源系统中解耦Flume。

Agent
1、一个Agent包含Source、Channel、Sink和其他组件。
2、它利用这些组件将events从一个节点传输到另一个节点或最终目的地。
3、agent是Flume流的基础部分。
4、Flume 为这些组件提供了配置、生命周期管理、监控支持。

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关联。

Agent之Channel与Sink


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工作。

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。

  • 大小: 199.1 KB
  • 大小: 90.2 KB
  • 大小: 41.7 KB
分享到:
评论

相关推荐

    大数据Flume架构原理.pdf

    大数据Flume架构原理.pdf

    Flume零基础应用实战企业全场景解决方案视频教程

    3.Flume运行原理及架构详解 第二章:Flume一站式快速部署方案 1.Flume企业级版本选型 2.Flume部署环境选型 3.Flume快速部署方案 第三章:Flume企业级全场景业务案例 1.单日志动态监控采集方案 2.分时...

    2 分布式数据收集:Flume 原理与应用

    2 分布式数据收集:Flume 原理与应用 2 分布式数据收集:Flume 原理与应用

    实时大数据采集框架Flume详解(视频+课件+代码+工具)

    01_Flume的介绍及其架构组成 02_Flume的安装部署 03_Flume的测试运行 04_Flume中配置使用file channel及HDFS sink 05_Flume中配置HDFS文件生成大小及时间分区 06_Flume中配置Spooling Dir的使用 07_Flume中...

    06.Flume的体系架构与示例.pptx

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可...

    Flume 常见应用场景-国语流畅.FLV

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可...

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

    Flume学习文档(1){Flume基本概念、Flume事件概念与原理}。 记录我的学习之旅,每份文档倾心倾力,带我成我大牛,回头观望满脸笑意,望大家多多给予意见,有问题或错误,请联系 我将及时改正;借鉴文章标明出处,谢谢

    大数据实时日志采集框架Flume实战(视频+课件+代码+工具+讲义)

    Flume的介绍及其架构组成 Flume的安装部署 Flume的测试运行 Flume中配置使用file channel及HDFS sink Flume中配置HDFS文件生成大小及时间分区 Flume中配置Spooling Dir的使用 Flume中配置Spooling Dir的文件...

    【Flume】(二)Flume 定义和基础架构

    文章目录一、Flume 定义二、Flume 基础架构 一、Flume 定义 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。 为什么选用 Flume ? 二、...

    Flume 基础架构.pptx )

    Flume技术开发

    flume及kafka及storm搭建.rar

    flume及kafka及storm搭建.rarflume及kafka及storm搭建.rarflume及kafka及storm搭建.rar

    入门简介教程-大数据组件flume

    flume入门介绍,简单介绍flume的背景和应用场景,flume的实现原理以及案例分享

    Flume1.6.0入门:安装、部署、及flume的案例

    Flume1.6.0入门:安装、部署、及flume的案例

    大数据平台flume组件应用研究说明书.docx

    用电大数据平台flume组件应用研究说明书,欢迎下载学习

    Flume1.8安装部署

    Flume1.8安装部署,包含目录结构为1、下载地址,安装环境工具下载地址 2、单个Flume安装 3、多个Flume安装及HA 4、应用场景 5、Flume-Ng组件概述

    Flume详细介绍使用

    介绍了关于flume的基本应用架构和内部工作机制以及使用业务场景!

    Hadoop学习资料

    2.HDFS 2.0 应用场景、原理、基本架构及使用方法 3.YARN应用场景、基本架构与资源调度 4.Map Reduce 2.0 基本原理与架构 5.Map Reduce 2.0 编程实践 6.HBase 应用场景、原理与架构 7.HBase编程实践 8.HBase 案例分析...

    Flume-ng资料合集

    由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本。经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。

    flume介绍与原理

    本文来自于博客园,文章主要从Flume的应用场景以及Flume的结构和组件,简单的介绍了Flume,希望对大家有帮助。flume是由cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为hadoop...

    flume搭建资料及相关组件

    flume搭建资料及相关组件、flume搭建资料及相关组件、flume搭建资料及相关组件

Global site tag (gtag.js) - Google Analytics