`

Flume介绍

阅读更多
一、 Flume系统简介
Flume是一个由Cloudera提供的分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力
二、 Flume系统基本组件
1、 Agent:
采集数据,agent是flume中产生数据流的地方
2、 Collector:
收集anent发送过来的数据,汇集更大的数据流
3、 Master:
负责管理数据流的配置,支持多master节点
4、 ZooKeeper:
保存配置数据,ZooKeeper本身可保证配置数据的一致性和高可用,另外,在配置数据发生变化时,ZooKeeper可以通知Flume Master节点
三、 Flume运行机制

虚线代表的是节点间通信。作为收集日志的每个agent节点定期通过RPC方式向master节点发起心跳,master节点通过监听与回调处理RPC请求,并将配置的更改信息发送给agent,collector与master的通信原理与agent相同。
实线代表的是数据流的流向。Agent节点按照配置定期的收集日志并将数据发送给collect节点,collector节点可以接收多个anent节点的数据并按照配置中指定的时间间隔,将汇集后的数据流转到目标节点(通常是HDFS)。
上述流程中如果anent或者collector节点在指定的间隔时间内未能发送消息给master,master将其视为“死亡”,如果是collector A死亡,则master可以按照配置将collector A负责收集的 agent A agent B 两个节点的数据发送给collector B。
四、 Flume安装介绍
1、 下载与hadoop匹配的flume-0.9.4-cdh3u2.tar.gz
2、 解压至某目录 (/d1/soft/flume)
3、 配置环境变量 (vim .bash_profile)\
在PATH末尾追加     :$FLUME_HOME/bin
添加变量             export FLUME_HOME=/d1/soft/flume
添加变量            export FLUME_CONF_DIR=$FLUME_HOME/conf
添加变量            export FLUME_LOG_DIR=$FLUME_HOME/log
添加变量            export FLUME_PID_DIR=$FLUME_HOME/pid
4、 配置flume-site.conf
在flume集群各节点的$FLUME_HOME  的conf目录下新建flume-site.conf
并加入如下值:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"  href="configuration.xsl"?>
<configuration>

  <property>
    <name>flume.master.servers</name>
    <value>h253018</value>
    <description>This is the address for the config servers status
    server (http)
    </description>
  </property>
  <property>
    <name>flume.collector.event.host</name>
    <value>h253017</value>
    <description>This is the host name of the default "remote" collector. </description>
  </property>
  <property>
    <name>flume.collector.port</name>
    <value>35853</value>
    <description>This default tcp port that the collector listens to in order to receive events it is collecting.
    </description>
  </property>
<property>
  <name>flume.collector.output.format</name>
    <value>raw</value>
      <description>This default value is 'json'.
    </description>
</property>
</configuration>


五、 Flume启动
/d1/soft/flume/bin/flume-daemon.sh start master
/d1/soft/flume/bin/flume-daemon.sh start node -n collector
/d1/soft/flume/bin/flume-daemon.sh start node -n agent_16
/d1/soft/flume/bin/flume-daemon.sh start node -n agent_15
六、 配置示例
配置前的环境介绍:
h253014 为非flume集群的hadoop节点master
h253018 为flume集群 master节点
h253017 为flume集群 collentor节点
h253016 为flume集群 agent节点
h253015 为flume集群 agent节点

通过页面配置如下:

agent_15 : tail("/tmp/flume_text") | agentSink;
agent_16 : tail("/tmp/flume_text") | agentSink;
collector : collectorSource | collectorSink("hdfs://h253014:9000/flume/","test_data");
七、 Flume两种工作模式
1、 Push Sources:
外部系统会主动地将数据推送到Flume中,如RPC、syslog。
2、 Polling Sources:
Flume到外部系统中获取数据,一般使用轮询的方式,如text和exec。
注意,在Flume中,agent和collector对应,而source和sink对应。Source和sink强调发送、接受方的特性(如数据格式、编码等),而agent和collector关注功能。
八、 Source与Sink
Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力。同时,Flume的数据接受方,可以是console(控制台)、text(文件)、dfs(HDFS文件)、RPC(Thrift-RPC)和syslogTCP(TCP syslog日志系统)等。
九、 Flume的几个特性
Reliability:
Flume提供3中数据可靠性选项,包括End-to-end、Store on failure和Best effort。其中End-to-end使用了磁盘日志和接受端Ack的方式,保证Flume接受到的数据会最终到达目的。Store on failure在目的不可用的时候,数据会保持在本地硬盘。和End-to-end不同的是,如果是进程出现问题,Store on failure可能会丢失部分数据。Best effort不做任何QoS保证。
Scalability:
Flume的3大组件:collector、master和storage tier都是可伸缩的。需要注意的是,Flume中对事件的处理不需要带状态,它的Scalability可以很容易实现。
Manageability:
Flume利用ZooKeeper和gossip,保证配置数据的一致性、高可用。同时,多Master,保证Master可以管理大量的节点。
Extensibility:
基于Java,用户可以为Flume添加各种新的功能,如通过继承Source,用户可以实现自己的数据接入方式,实现Sink的子类,用户可以将数据写往特定目标,同时,通过SinkDecorator,用户可以对数据进行一定的预处理。
分享到:
评论

相关推荐

    flume介绍与原理.md

    flume介绍与原理: 1、flume的优势 2、Flume具有的特征:source-&gt;channel-&gt;sink 3、flume配置介绍 4、flume启动命令

    flume介绍及安装配置

    Flume 是一个由 Cloudera 开发的日志收集系统,专为处理和传输大量日志数据而设计。它具有分布式、可靠性和高可用性,能够有效地从多种数据源收集数据,进行简单的处理,并将数据发送到不同的数据接收方。Flume 的...

    星环大数据平台_Flume使用方法.pdf

    ### Flume介绍 Flume是Apache下的一个分布式、可靠且可用的系统,用于有效地收集、聚合和移动大量日志数据。它的主要用途是日志数据的聚合,具有分布式、高可用、高可靠性、易于管理和可定制的特点。 ### 实验环境...

    flume介绍与原理

    Apache Flume 是一款高度可配置、分布式的日志收集系统,最初由Cloudera公司开发,后于2009年捐赠给Apache软件基金会,并逐渐成为Hadoop生态系统中的重要组件。近年来,随着Flume的持续优化和新版本的发布,尤其是...

    Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS.docx

    在本文中,我们将介绍如何在 Windows 环境下搭建 Flume-ng,并使用 Log4j 将日志输出到 HDFS。 一、Flume-ng 安装与配置 首先,需要下载 Flume-ng 并解压到指定目录。然后,需要设置环境变量,新建 FLUME_HOME ...

    Flume+kafka+Storm整合

    本篇内容重点介绍了如何利用Flume、Kafka与Storm这三个开源工具实现一套完整的实时数据流处理系统。 **Flume** 是一个高可靠、高性能的服务,用于收集、聚合和移动大量日志数据。它具有简单灵活的架构,基于流的...

    让你快速认识flume及安装和使用flume1 5传输数据 日志 到hadoop2 2 文档

    让你快速认识flume及安装和使用flume1 5传输数据 日志 到hadoop2 2 中文文档 认识 flume 1 flume 是什么 这里简单介绍一下 它是 Cloudera 的一个产品 2 flume 是干什么的 收集日志的 3 flume 如何搜集日志 我们把...

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

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

    flume1.6.0.rar

    以下是关于 Flume 的详细介绍及其在1.6.0版本中的关键知识点: 1. **Flume 架构**: Flume 采用层次化、灵活的架构,由源头(Source)、通道(Channel)和接收器(Sink)三个主要组件构成。Source 负责从不同数据源收集...

    Flume最佳实践手册

    总的来说,Flume最佳实践手册提供了关于Flume NG版本的深入介绍,涵盖了架构、核心概念、数据流以及源点组件的详细说明和实践技巧。对于使用Flume进行大数据日志收集和处理的用户而言,它是一份非常有价值的资料。

    Flume的高级案例

    本文档通过一个具体的案例——ReplicatingChannelSelector的应用场景,详细介绍如何利用Flume进行复杂的数据流处理。 #### Flume的Fanout机制介绍 在Flume中,Fanout机制允许将来自一个源的数据分发到多个通道。...

    flume-es5.X依赖.zip

    本文将深入探讨Flume-ES5.X的依赖关系,并详细介绍如何自定义Sink以满足特定需求。 一、Flume-ES5.X的依赖组件 Flume-ES5.X的核心依赖主要包括以下几个部分: 1. Apache Flume:Flume是Apache软件基金会的项目,...

    flume自定义功能实现代码

    在提供的链接中,"http://blog.csdn.net/m0_37739193/article/details/78779052",作者可能详细介绍了如何创建一个自定义的 Flume Source。自定义 Source 的过程通常包括以下步骤: 1. **创建 Java 类**:首先,你...

    数据采集之Flume.xmind

    Apache Flume 是一个分布式、高可靠、高可用的用来收集、聚合、转移不同来源的大量日志数据到中央数据仓库的工具 ...另外还有很多可选的组件interceptor、channel selector、sink processor等后面会介绍)。

    Flume+Solr演示demo.pdf

    此外,通过该demo的介绍,我们可以了解到如何配置Flume来接收和处理数据,并利用Solr强大的搜索能力来实现数据的快速检索。对于那些需要实时索引和搜索日志数据的场景,这种集成无疑是非常有用的技术手段。

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

    以下是对 Flume 的详细介绍: **Flume 的核心概念和架构** 1. **事件(Event)**:事件是 Flume 中的基本数据单元,包含了日志数据(以字节数组形式)和元数据(头信息)。它们由外部的 Source 生成,经过 Channel ...

    flume向mongodb写入环境搭建所需

    本篇文章将详细介绍如何配置 Flume 以将日志数据写入 MongoDB。 首先,我们来理解 Flume 的基本架构。Flume 由三个核心组件构成:Sources、Channels 和 Sinks。Sources 负责接收数据,Channels 作为临时存储,Sinks...

    flume用户手册

    在Flume 1.7.0用户手册中,还介绍了如何搭建和配置Flume,以及如何使用各种组件。对于版本1.4.x的用户,本手册提供安装和配置的指南,其中也会包括Flume架构和设计概念的介绍。手册还介绍了在生产环境中高效使用...

Global site tag (gtag.js) - Google Analytics