Flume 监听本地目录到 HDFS

a1.sources = s1
a1.channels = c1
a1.sinks = k1

a1.sources.s1.channels = c1
a1.sources.s1.type = spooldir
a1.sources.s1.spoolDir = /home/abby/data
a1.sources.s1.fileHeader = true
a1.sources.s1.deletePolicy = immediate

# 内存和本地一并使用,优先使用内存做缓冲 如果内容不够,那就使用 本地磁盘
# 前面是内存的配置实用内存的
# 下面是本地的设置 方式和最上面一样的
a1.channels.c1.type = SPILLABLEMEMORY
a1.channels.c1.memoryCapacity = 10000
a1.channels.c1.overflowCapacity = 1000000
a1.channels.c1.byteCapacity = 800000
a1.channels.c1.checkpointDir =/home/abby/flume/checkpoint
a1.channels.c1.dataDirs = /home/abby/flume/dataDir

a1.sinks.k1.type = hdfs
a1.sinks.k1.channel = c1

# 生成的目录是flume 然后是年 然后是时间的目录
a1.sinks.k1.hdfs.path =/flume/a2/%Y-%m-%d/%H_%M

# 文件的前缀
a1.sinks.k1.hdfs.filePrefix = final

# 文件的后缀
a1.sinks.k1.hdfs.fileSuffix = .log

# 文件还没到回滚时间在使用的前缀
a1.sinks.k1.hdfs.inUsePrefix = inUse

# 在使用的后主
a1.sinks.k1.hdfs.inUseSuffix = .tmp

# 设置文件的回滚时间,60秒后生成新的文件 ,如果文件没有数据,不会回滚,因为hdfs上不允许很多没有数据的文件的存在,这里是按照时间设置,设置一个后其他都要是0
# 按照大小回滚的时候 没有满足要求之前都是放在一个文件中,哪怕大小超过设置的
# 事件的回滚,就是时间的个数 ,比如10 发送10行数据才会回滚一次
# 超时时间回滚,如60 就是如果60秒中没有收集到数据 就会回滚一次生成一个文件
a1.sinks.k1.hdfs.rollInterval = 60
a1.sinks.k1.hdfs.rollSize = 0
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.idleTimeout = 0

# 这里是设置目录回滚 10分钟回滚1次 生成一个新的目录
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute

# 设置文件的类型
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.writeFormat = Text

# 设置时区 和 时间戳
a1.sinks.k1.hdfs.timeZone = Asia/Shanghai
a1.sinks.k1.hdfs.useLocalTimeStamp = true

注意:必须是UTF-8的数据才能被收集,否则会被报错,

  若文件在开启flume之前就已经存在,也能被收集进去 , 而且原文件会被删除.

猜你喜欢

转载自www.cnblogs.com/alpha-cat/p/12529291.html