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

原创 2015年11月19日 14:36:52

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中

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/qianshanding0708

flume安装配置-采集日志到hadoop存储

一、整体架构        flume其实就是一个日志采集agent,在每台应用服务器安装一个flume agent,然后事实采集日志到HDFS集群环境存储,以便后续使用hive或者pig等大数据...

flume自定义组件的 jar 包管理

自定义flume 组建后,将项目打成jar 包,关于这个jar 包的管理和使用我在这里列举了三中方式。这三种方式都可以,随自己喜好使用。1. lib 目录将maven项目打成jar包,将jar 包放...

flume自定义组件的 jar 包管理

自定义flume 组建后,将项目打成jar 包,关于这个jar 包的管理和使用我在这里列举了三中方式。这三种方式都可以,随自己喜好使用。 1. lib 目录 将maven项目打成jar包,...

Flume 第三方插件使用说明

推荐三种flume第三方插件,时间拦截器、目录监控source和elasticsearch 2.2的sink。...

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

1.log4j:WARN No appenders could be found for logger (org.apache.flume.lifecycle.LifecycleSupervisor)...

log4j+flume+HDFS实现日志存储

log4j  日志生成flume  日志收集系统,收集日志,使用版本apache-flume-1.6.0-bin.tar.gz .HDFS  Hadoop分布式文件系统,存储日志,使用版本had...

flume简介与监听文件目录并sink至hdfs实战

场景1. flume是什么1.1 背景  flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(origin...

Flume中的HDFS Sink配置

Flume中的HDFS Sink配置参数说明 type:hdfs path:hdfs的路径,需要包含文件系统标识,比如:hdfs://namenode/flume/webdata/ fi...

Docker内flume http source & hdfs sink

场景: 使用flume的http source 获取数据,hdfs sink将数据输入到hdfs ,下面是进行的配置和说明 Sink-hdfs 查看用户文档 http://flume.apac...
  • superce
  • superce
  • 2017年05月13日 15:47
  • 108

Flume监听文件目录sink至hdfs配置

转自:http://www.cnblogs.com/weiqiang-liu/p/3795149.html 一:flume介绍         Flume是一个分布式、可靠、和高可用的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Flume + HDFS Sink采集数据及如何添加第三方JAR
举报原因:
原因补充:

(最多只允许输入30个字)