• Flueme学习之路(一)Flume的基础介绍


    背景

    Hadoop业务的整体开发流程:

    image-20190820200647052

    ​ 从Hadoop的业务开发流程中可以看出,在大数据的业务处理流程中,对于数据的采集是十分重要的一步,也是不可避免的一步。

    ​ 许多公司的平台每天会产生大量的日志(一般为流式数据,如搜索引擎的pv,查询等),处理这些日志需要特定的日志系统。一般而言,这些系统需要具有如下的特征:

    1. 构建应用系统的和分析系统的桥梁,并将它们之间的关系解耦;
    2. 支持近实时的在线分析系统和类似于Hadoop的离线分析系统;
    3. 具有高可扩展性。即当数据量增加时,可以通过增加节点进行水平扩展。

    开源的日志系统,包括facebook的scribe,apache的chukwa,linkedin的kafka和cloudera的flume等。

    Flume的特点

    2.1Flume特点

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

    flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息。这些Event由Agent外部的Source生成。当Source捕获事件后会进行特定的格式化,然后source会把事件推入(单个活多个)Channel中。可以把Channel看作是一个缓冲区,它将保存事件直到slink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source.

    1. Flume的可靠性

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

    2. Flume的可恢复性

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

    2.2 Flume的一些核心

    ​ Client:clinet生产数据,运行在一个独立的线程。

    ​ Event:一个数据单元,消息头和消息体组成。(Event可以是日志记录,avro对象等。)

    ​ Flow:Event从源头到达目的地的迁移的抽象

    ​ Agent:一个独立的Flume进程,包含组件Source、Channel、Sink。(Agent使用JVM运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks)

    ​ Source:数据收集组件。(Source从Client收集数据,传递给Channel)

    ​ sink:从Channel中读取并移除Event,将Event传递到FlowPipeLine中的下一个Agent(如果有的话)(Sink从channel收集数据,运行在一个独立线程。)

    2.3 Flume NG 的体系结构

    ​ Flume运行的核心是Agent。Flume以Agent为最小的独立运行单位。一个Agent就是一个JVM。它是一个完整的数据收集工具,包含三个核心组件,分别是source、channel、sink。通过这些组件,Event可以从一个地方流向另一个地方,如下图所示:

    3. Flume的安装

    3.1 Flume的下载

    下载地址:

    http://mirrors.hust.edu.cn.apace

    3.2 Flume的安装

    ​ Flume框架对hadoop和zookeeper的依赖只是在jar包上,并不要求flume启动时必须将hadoop和zookeeper服务也启动。

    (1)将安装包上传到服务器并解压

    tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /home/app/
    

    (2)修改配置文件

    [root@node01 conf]# cp flume-env.sh.template flume-env.sh
    
    

    image-20190820212543677

    (3) 配置环境变量

     vi /etc/profile
    

    image-20190820211646743

    保存使其生效

    source /etc/profile
    

    (4)查看版本信息

    flume-ng version
    

    image-20190820211955884

  • 相关阅读:
    C#入门
    使用 OLEDB 及 SqlBulkCopy 将多个不在同一文件夹下的 ACCESS mdb 数据文件导入MSSQL
    aspose.word 读取word段落内容
    Jquery+Aajax 批量上传
    asp.net mvc web api Token验证
    iframe父页面和子页面获取元素和js变量
    JavaScrpt常用的封装方法
    ASP.NET MVC 导出Word报表
    Asp.net的对Excel文档的导入导出操作
    C++ 复制vector值到array,复制 array 到jintArray
  • 原文地址:https://www.cnblogs.com/shine-rainbow/p/11385731.html
Copyright © 2020-2023  润新知