专栏首页stream processflume-ng 使用spool source 传输文件到hdfs

flume-ng 使用spool source 传输文件到hdfs

Flume 1.4.0 User Guide 地址:http://archive.cloudera.com/cdh4/cdh/4/flume-ng-1.4.0-cdh4.6.0/FlumeUserGuide.html

本文档主要用来记录如何在日志服务器和hdfs服务器端利用flume-ng将已经写好的日志传输到hdfs。

一 安装与环境配置

下载地址 http://archive.cloudera.com/cdh4/cdh/4/flume-ng-latest.tar.gz ,使用chd4版本。

解压到服务器目录。

配置JAVA_HOME和PATH (具体路径参考实际情况)

declare -x JAVA_HOME="/usr/java/default"

export PATH=$JAVA_HOME:$PATH

export PATH=/home/dongxiao.yang/apache-flume-1.4.0-cdh4.6.0-bin/bin:$PATH

二 程序参数配置

flume-ng的程序参数主要通过修改各种配置文件实现。 (具体路径参考实际情况)

1 flume-ng默认程序最大内存为20m,打开解压文件路径下的/home/dongxiao.yang/apache-flume-1.4.0-cdh4.6.0-bin/conf/flume-env.sh.template文件

修改如下一行

#JAVA_OPTS="-Xms100m -Xmx200m -Dcom.sun.management.jmxremote"

改为

JAVA_OPTS="-Xms64m -Xmx300m -Dcom.sun.management.jmxremote"

将flume-env.sh.template重命名为flume-env.sh使配置生效。

2 配置source channel sink。

服务器端的配置文件conf.properties

日志服务器端的配置文件conf.properties

#define agent1 agent1.sources = source1 agent1.channels = channel1 agent1.sinks = sink1 #Describe the source agent1.sources.source1.type = spooldir # source 读取源日志的路径 agent1.sources.source1.spoolDir = /home/dongxiao.yang/flumespool #agent1.sources.source1.fileHeader =true #Describe the sink #agent1.sinks.sink1.type = logger agent1.sinks.sink1.type = avro #avro sink 发送数据的地址和端口 agent1.sinks.sink1.hostname= 218.241.157.74 agent1.sinks.sink1.port = 10000 # avro 数据发送前会进行压缩,共有1到9个级别的压缩 agent1.sinks.sink1.compression-type = deflate #Describe the channel agent1.channels.channel1.type = file #file channle checkpoint文件的路径 agent1.channels.channel1.checkpointDir = /home/dongxiao.yang/checkpoint # file channel data文件的路径 agent1.channels.channel1.dataDirs = /home/dongxiao.yang/data # file channel 每次传输事件的个数 agent1.channels.channel1.transactionCapacity = 10000 #file channel 最多储存事件的个数 agent1.channels.channel1.capacity= 10000000 #Bind the source and sink to the channel agent1.sources.source1.channels = channel1 agent1.sinks.sink1.channel = channel1

hdfs端的conf.properties

#define agent1.sources = source1 agent1.channels = channel1 agent1.sinks = sink1 #Describe the source agent1.sources.source1.type = avro # avro source 监听的地址和端口 agent1.sources.source1.bind = 0.0.0.0 agent1.sources.source1.port = 10000 # avro source 读取的数据是压缩过的,类型必须与 前一个 avro sink相同 agent1.sources.source1.compression-type =deflate #Describe the sink agent1.sinks.sink1.type = hdfs # 写入hdfs的路径 agent1.sinks.sink1.hdfs.path = /tmp/flume # 文件前缀 agent1.sinks.sink1.hdfs.filePrefix = test agent1.sinks.sink1.hdfs.rollCount = 0 agent1.sinks.sink1.hdfs.rollInterval=0 agent1.sinks.sink1.hdfs.rollSize=0 agent1.sinks.sink1.hdfs.batchSize=5000 #文件在完全没有流写入后60s关闭 agent1.sinks.sink1.hdfs.idleTimeout=60 #数据写入hdfs时进行压缩 agent1.sinks.sink1.hdfs.fileType = CompressedStream #数据写入hdfs时压缩的种类 agent1.sinks.sink1.hdfs.codeC = gzip # Use a channel which buffers events in memory agent1.channels.channel1.type = memory agent1.channels.channel1.capacity = 100000 agent1.channels.channel1.transactionCapacity = 5000 #Bind the source and sink to the channel agent1.sources.source1.channels = channel1

三 启动程序

运行程序位于解压文件/bin目录下。运行前需要先为flume-ng赋予可执行权限:chmod 777 flume-ng。

在bin目录下运行命令 ,程序即可执行。

flume-ng agent --conf /home/dongxiao.yang/apache-flume-1.4.0-cdh4.6.0-bin/conf --conf-file /home/dongxiao.yang/apache-flume-1.4.0-cdh4.6.0-bin/conf/conf.properties

--name agent1 -Dflume.root.logger=INFO,DAILY -Duser.timezone=UTC+8

其中 --conf 对应的是配置文件目录

--conf-file 对应配置文件

--name 对应配置文件内的angent的名字

-D对应日志以及运行时区

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • flink-connector-kafka consumer checkpoint源码分析

    转发请注明原创地址:http://www.cnblogs.com/dongxiao-yang/p/7700600.html

    sanmutongzi
  • Apple Swift编程语言入门教程

    今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍《The Swift Programming Language》中摘录和提取而成。希望对各位的...

    sanmutongzi
  • xargs 参数

    hadoop fs -ls /source/recommend/at_access | awk -F "/" '{print $NF}' | grep -v $...

    sanmutongzi
  • 大数据-Flume采集文件到HDFS

    需求 比如业务系统使用log4j生成的日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到 hdfs

    cwl_java
  • 最大似然估计 – Maximum Likelihood Estimate | MLE

    最大似然估计是一种统计方法,它用来求一个样本集的相关概率密度函数的参数。这个方法最早是遗传学家以及统计学家罗纳德·费雪爵士在1912年至1922年间开始使用的。

    easyAI
  • 多态中的虚析构函数

    因为,如果delete一个基类的指针时, 如果它指向的是一个子类的对象,那么析构函数不为虚就会导致无法调用子类析构函数,从而导致资源泄露。

    WindSun
  • Neo4j : REMOVE删除命令

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    程裕强
  • 使用Gradle实现多渠道打包

    这里我们主要用到gradle文件中的buildTypes和productFlavors,今天我们主要研究下它俩。

    蜻蜓队长
  • 自然语言处理的下一个十年将在哪里?CCF-GAIR 2018将给你答案

    不管学界还是业界,对自然语言处理的谈论越来越多,更有甚者,自然语言处理被上升到战略层面。

    AI科技评论
  • 9.Go-反射、日志和线程休眠

    zhang_derek

扫码关注云+社区

领取腾讯云代金券