flume日志收集按时间写入HDFS

2020-03-02 147次浏览 已收录 5个评论

测试:对一个文件进行监控,文件有追加的时候就按时间存储到hdfs上。

感觉flume挺方便的,练习项目需要,以后再进行具体学习。

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

 # Describe/configure the source
 a1.sources.r1.type = spooldir
 a1.sources.r1.spoolDir = /home/logs
 a1.sources.r1.fileHeader = true

 # Describe the sink
 ***只修改上一个spool sink的配置代码块 a1.sinks.k1.type = logger
 a1.sinks.k1.type=hdfs
 a1.sinks.k1.hdfs.path=hdfs://flume/%Y-%m-%d/%H%M
 
 ##每隔60s或者文件大小超过10M的时候产生新文件
 # hdfs有多少条消息时新建文件,0不基于消息个数
 a1.sinks.k1.hdfs.rollCount=0
 # hdfs创建多长时间新建文件,0不基于时间
 a1.sinks.k1.hdfs.rollInterval=60
 # hdfs多大时新建文件,0不基于文件大小
 a1.sinks.k1.hdfs.rollSize=10240

# 当目前被打开的临时文件在该参数指定的时间(秒)内,没有任何数据写入,则将该临时文件关闭并重命名成目标文件 a1.sinks.k1.hdfs.idleTimeout=3 a1.sinks.k1.hdfs.fileType=DataStream a1.sinks.k1.hdfs.useLocalTimeStamp=true ## 每五分钟生成一个目录: # 是否启用时间上的”舍弃”,这里的”舍弃”,类似于”四舍五入”。如果启用,则会影响除了%t的其他所有时间表达式 a1.sinks.k1.hdfs.round=true # 时间上进行“舍弃”的值; a1.sinks.k1.hdfs.roundValue=5 # 时间上进行”舍弃”的单位,包含:second,minute,hour a1.sinks.k1.hdfs.roundUnit=minute # Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1


渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:flume日志收集按时间写入HDFS
喜欢 (0)

您必须 登录 才能发表评论!

(5)个小伙伴在吐槽
  1. 我也是小白以后多多交流
    你好2020-03-27 13:12
  2. 挺明白的
    小蚯蚓2020-03-28 16:53
  3. 看了那么多博客,就你的能看懂
    我也是渣渣2020-03-28 17:19
  4. 奥利给
    笨鸟先飞2020-03-28 17:45
  5. 给你点赞
    努力2020-03-29 18:22