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

Flume + HDFS Sink采集数据及如何添加第三方JAR

 
阅读更多

Flume默认情况下是没有引入HDFS,Kafka,Elasticsearch,Hbase等sink的相关jar包,如果使用,需要自行添加相关jar包。

下面我以使用HDFS Sink为例,在Flume中加入第三方JAR包。

Flume支持一种特殊的目录结构:plugins.d,它有特殊的格式,可以很方面的管理第三方JAR。当然我们可以直接把第三方JAR丢掉$FLUME_HOME/lib目录,但是这样不利于调试和排除故障,特别是处理JAR包冲突的问题。

plugins.d目录:
plugins.d目录位于$FLUME_HOME/plugins.d。在启动的时候,flume-ng启动脚本会检查 plugins.d 目录的插件确保符合下面的格式,并且包含了正确的路径。

插件目录布局:
每个在 plugins.d 内的插件,最多包含三个子目录。
1,lib - 插件的JAR。
2,libext - 插件依赖JAR(S)
3,native - 任何所需的本地库,例如:.so文件
下面是两个插件在 plugins.d 目录中的位置(以下以使用HDFS Sink为例):

    plugins.d/  
    plugins.d/hdfs-sink/
    #flume-hdfs-sink-1.5.1.jar是Flume自带的,所有lib目录为空
    plugins.d/hdfs-sink/lib/    
    #flume-hdfs-sink-1.5.1.jar依赖以下四个包
    plugins.d/hdfs-sink/libext/commons-configuration-1.6.jar
    plugins.d/hdfs-sink/libext/hadoop-annotations-2.4.1.jar
    plugins.d/hdfs-sink/libext/hadoop-auth-2.4.1.jar
    plugins.d/hdfs-sink/libext/hadoop-common-2.4.1.jar
    plugins.d/hdfs-sink/libext/hadoop-hdfs-2.4.1.jar
    #没有本地库
    plugins.d/hdfs-sink/native/
    #HDFS配置文件
    plugins.d/hdfs-sink/conf/hdfs-site.xml
    plugins.d/hdfs-sink/conf/core-site.xml








以上是HDFS所需的配置文件和依赖的JAR。

配置Flume环境变量:

JAVA_HOME=/usr/local/jdk1.8.0_45

# Give Flume more memory and pre-allocate, enable remote monitoring via JMX
#JAVA_OPTS="-Xms100m -Xmx200m -Dcom.sun.management.jmxremote"

# Note that the Flume conf directory is always included in the classpath.
#将hdfs-site.xml和core-site.xml放入Flume的环境变量中
FLUME_CLASSPATH="/data/apache-flume-1.5.1-bin/plugins.d/hdfs-sink/conf/"

OK,完事具备,最后采集数据到HDFS中

a1.sources = source1
a1.sinks = sink1
a1.channels = channel1
#resources
a1.sources.source1.type = spooldir
a1.sources.source1.channels = channel1
a1.sources.source1.spoolDir = /data/logs

a1.channels.channel1.type = memory
a1.channels.channel1.capacity = 1000
a1.channels.channel1.transactionCapacity = 500

a1.sinks.sink1.type = hdfs
a1.sinks.sink1.channel = channel1
a1.sinks.sink1.hdfs.path = /flume/events/%Y-%M-%d
a1.sinks.sink1.hdfs.fileType = DataStream
a1.sinks.sink1.hdfs.rollCount = 0
a1.sinks.sink1.hdfs.rollSize = 0
a1.sinks.sink1.hdfs.rollInterval = 0
a1.sinks.sink1.hdfs.rollSize = 1073741824
a1.sinks.sink1.hdfs.filePrefix = nginx-%H-%M
a1.sinks.sink1.hdfs.batchSize = 200
a1.sinks.sink1.hdfs.round = true
a1.sinks.sink1.hdfs.roundValue = 10
a1.sinks.sink1.hdfs.roundUnit = minute
a1.sinks.sink1.hdfs.useLocalTimeStamp = true
该示例是通过SpoolingDirectorySource获取数据放入HDFS中

分享到:
评论

相关推荐

    flume+hdfs所需jar.rar

    1. `flume-ng-hdfs-sink.jar`:这是 Flume 的 HDFS 输出插件,实现了将 Flume 收集到的数据写入 HDFS 的功能。 2. `flume-ng-sdk.jar`:Flume 的 SDK,包含 Flume API,使得开发者可以创建自定义的 Source 和 Sink。...

    Flume配置双HA hdfsSink.docx

    - 在Flume Agent的配置文件中添加自定义的HDFSSink。例如,配置文件可以包含如下内容: ```properties a3.sinks.k6.type=com.kdg.hdfsSink.HDFSEventSink a3.sinks.k6.hdfs.path=hdfs://NNHA1/song/test3/20%y%m...

    利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka

    标题中的“利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka”是一项数据集成任务,涉及Apache Flume、MySQL数据库、Hadoop Distributed File System (HDFS) 和Apache Kafka这四个关键技术。Flume是Apache的一...

    Flume-HDFS-驱动-jar包

    总之,Flume-HDFS驱动JAR包是确保Flume能成功与HDFS集成的关键组件,通过手动添加这些依赖,可以解决Flume在上传数据到HDFS时可能出现的问题。理解这一过程对于在大数据环境中有效地使用Flume进行日志收集和处理至关...

    flume所需要的hdfs包.zip

    在实际应用中,Flume 使用 Source、Channel 和 Sink 这三个主要组件来实现数据流的处理。Source 负责从数据源获取数据,例如网络日志、syslog 事件或其他形式的实时数据流。Channel 是一个临时存储区,用于在 Source...

    flime安装+配置+测试+案例(采集日志至HDFS)

    在本文中,我们将深入探讨 Flume 的安装、配置、测试以及如何将其应用于实际案例,即从不同节点采集日志并存储到 HDFS。 首先,我们从安装 Flume 开始。Flume 的安装包括解压安装包,重命名 Flume 目录,配置 `...

    flume-ng-hdfs-sink-1.7.0.jar

    flume-ng-hdfs-sink-1.7.0.jar,这个包里包含了flume和HDFS集成的所有类

    flume+mysql+zookeeper.zip

    别忘了在启动Flume之前,确保所有依赖项(如MySQL JAR)都已添加到类路径中。 最后,Hadoop的安装通常包括解压、配置`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml`等文件,设置HDFS的名称节点和数据节点,...

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

    Flume-ng 是一个高可用、可靠、分布式的日志聚合系统,可以实时地从各种数据源(如日志文件、网络 socket、数据库等)中收集数据,并将其传输到目标系统中,如 HDFS、HBase 等。在本文中,我们将介绍如何在 Windows ...

    flume-to-hdfs-jar1.rar

    标题 "flume-to-hdfs-jar1.rar" 暗示了这个压缩包包含的是用于配置 Flume 将数据传输到 HDFS (Hadoop 分布式文件系统) 的相关库文件。这些 JAR 包是 Flume 集成到 HDFS 执行数据流任务时所需的依赖组件。 Flume 是 ...

    flume-hadoop-fonxian1024.zip

    通过正确配置Flume的HDFS Sink,并确保使用正确的jar包,我们可以高效地将日志数据存入HDFS,为后续的大数据分析提供可靠的数据源。在实际应用中,理解Flume的工作原理,熟练掌握配置方法,以及关注版本间的兼容性,...

    flume客户端整合hadoop所用的jar包

    具体是flume使用hdfs sink时所用的,当你的主机没有hadoop环境的时候,添加这些jar包就能使用,前提是主机能通hdfs服务器的9000端口。 【flume版本1.7.0 hadoop版本2.7.4】 这些jar包是楼主一个个试出来的,大佬们给...

    flume及kafka及storm搭建.rar

    在大数据处理领域,Flume、Kafka和Storm是三个至关重要的工具,它们分别在数据采集、数据分发和实时处理方面发挥着核心作用。这里我们将深入探讨这三个组件以及如何搭建它们。 1. Flume:Flume是Apache软件基金会的...

    flume-hadoop-jar.zip

    为了将数据写入HDFS,Flume需要Hadoop的相关jar包,这是因为HDFS(Hadoop Distributed File System)是Hadoop的数据存储组件,而Flume需要调用HDFS的API来完成数据的写入操作。这些jar包包含了HDFS的客户端接口,...

    jar.tar.gz

    Flume的工作原理是通过Source、Channel和Sink三部分构成的数据流转体系。Source负责接收数据,Channel作为临时存储,Sink则负责将数据传出。在这个特定的场景中,Flume Agent的配置可能包含了一个或多个Source,比如...

    flume抓取oracle数据所需jar包

    在这个场景中,Flume 源将扮演从 Oracle 数据库提取数据的角色,通道会临时存储这些数据,而 sink 则负责将数据传输到目标位置,如 HDFS(Hadoop Distributed File System)。 要使 Flume 能够连接到 Oracle 数据库...

    flume解析日志所需jar

    在大数据处理领域,Flume是一个广泛使用的分布式、可靠且可用于有效收集、聚合和移动大量日志数据的系统。它设计的目标是具有高可用性、容错性和可扩展性,能够处理来自不同源的日志数据,并将其传输到各种目标,如...

    flume-ng-sql-source-1.4.3.jar

    《Flume-ng-sql-source-1.4.3.jar:数据采集与SQL集成的利器》 Flume-ng-sql-source-1.4.3.jar 是Apache Flume的一个扩展组件,它为Flume提供了与SQL数据库交互的能力。Flume是Apache Hadoop生态体系中的一个分布式...

    Kafka+Flume-ng搭建

    ### Kafka+Flume-ng搭建详解 #### 一、概述 Kafka+Flume-ng是一种高效的数据...在实际应用中,Kafka+Flume-ng组合可以广泛应用于日志采集、监控数据实时分析等多种场景,极大地提升了大数据处理系统的效率和可靠性。

    flume开发相关工具包

    2. **Flume架构**:Flume由三个核心组件组成:Source(数据源),Sink(数据接收器)和Channel(临时存储)。Source负责从数据源获取数据,Sink将数据发送到目标位置,而Channel则在Source和Sink之间临时存储数据。 ...

Global site tag (gtag.js) - Google Analytics