Flume教程(一)Flume监听目录,将目录中的文件上传HDFS

在hp3上新建目录/t_f,让flume监听该文件夹,实际工作中,该目录可以设置为应用系统服务端的日志文件夹。

在flume的job文件夹下,新建:

 touch flume-dir-hdfs.conf

在里面填写内容:

# flume配置的例子
# Name the components on this agent
# source:起一个别名
# properties文件它是java的配置文件,=左边就是键,=右边是值;键的开头都是以a1(就是flume的名字--agent的名字就是a1);a1随便起
a1.sources = r1
# sink:起一个别名
a1.sinks = k1
# channels;:起一个别名
a1.channels = c1

# Describe/configure the source
# spooldir:监控硬盘上指定的某个目录,如果文件发生变化,会被flume捕获;
a1.sources.r1.type = spooldir
# 要监控的目录,此目录必须存在
a1.sources.r1.spoolDir =/t_f/
# 已经完成的文件,会加上一个后缀
a1.sources.r1.fileSuffix =.ok
# 已经完成的文件,会立即删除,默认值是never;(永不删除)
# a1.sources.r1.deletePolicy =immediate
# 是否添加存储绝对路径文件名的标题
a1.sources.r1.fileHeader =true
# 只处理此目录下面的txt文件;
a1.sources.r1.includePattern =^[\\w]+\\.txt$

# Describe the sink
# 描述一个sink: logger日志(打印到控制台上)
a1.sinks.k1.type = hdfs
# hdfs的路径;配置hdfs一定要是大哥的路径;(必须是active)
a1.sinks.k1.hdfs.path =hdfs://hp1:9000/flume/%Y-%m-%d/
# 文件的前缀
a1.sinks.k1.hdfs.filePrefix =event
# 文件的后缀
a1.sinks.k1.hdfs.fileSuffix =.txt
# hdfs.inUsePrefix临时文件的前缀,hdfs.inUseSuffix临时文件的后缀
# hdfs.codeC 文件压缩
# 输出原来的文件内容,不要压缩
a1.sinks.k1.hdfs.fileType=DataStream
# 设置文件的格式为textFile
a1.sinks.k1.hdfs.writeFormat=Text
# 如果路径里面有时间,必须要加上hdfs.useLocalTimeStamp=true
a1.sinks.k1.hdfs.useLocalTimeStamp=true
# 时间舍去法;%y,%m,%d(机器的本地时间),集群中所有时间是一样的;(如果集中所有的服务器时间不一样,允许时间有误差;统一是当前时间-误差)
# 当前的时间允许的误差是20s;
a1.sinks.k1.hdfs.round = true
# 每隔多长时间
a1.sinks.k1.hdfs.roundValue = 20
# 时间单位
a1.sinks.k1.hdfs.roundUnit = second
# roll:滚动;时间30s,如果flume发现有新文件,上传到hdfs上,等待30秒
# 避免有大文件,拆分成多个小文件;
# 在等待的30秒以内,如果此文件发生了修改(也会进行拆分)
a1.sinks.k1.hdfs.rollInterval=30
# 滚动,新增加的文件大小(等待时间期间);0:表示不生效
a1.sinks.k1.hdfs.rollSize=1024
# 滚动多少行(新增加多少行)(等待时间期间),每隔10行会在hdfs上生成一个新文件;0:表示不生效
a1.sinks.k1.hdfs.rollCount=0


# Use a channel which buffers events in memory
# 描述一下channel:内存
a1.channels.c1.type = memory
# capacity:容量
a1.channels.c1.capacity = 1000000
# transactionCapacity:事务的容量
a1.channels.c1.transactionCapacity = 1000000

# Bind the source and sink to the channel
# 绑定;source和channel绑定
a1.sources.r1.channels = c1
# sink和channel绑定
a1.sinks.k1.channel = c1

测试:
一、启动Hadoop
二、开启flume监听:

flume-ng agent --conf conf --name a1 --conf-file /usr/local/flume/job/flume-dir-hdfs.conf

在/t_f中新建文件,观察flume打印控制台信息和HDFS上的文件信息。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值