flume架构(二)

Sources

①、exec:tail命令,监控一个文件
②、spooling Dir:监控目录中的某个文件,不支持正则匹配
③、tailDir:监控目录中的所有正则匹配文件

个人操作总结:

exec:仅仅支持监控一个文件,类似于linux命令的tail -f
spoolingDir:支持的范围有限,类似于hdfs的hdfs -put….,有致命的缺陷
  其1:一个文件收集完之后,默认就把该文件的后缀名称给改变了,后续无法操作
  其2:就是不支持正则匹配
  其3:如果Agent挂掉后,又会从头读取已经读过的数据,很坑。
tailDir:是在apache-flume的1.7.0版本后出现的,但是有bug,不能支持增量导入方式,需要自己进行源码重新编译,但是cdh-flume的1.6.0版本修复了此bug,所以要使用cdh版本的,他支持两方面的操作,第一方面的业务是监控目录下的所有文件,我们公司的部分业务用户订单行为,用户行程行为、gps信息,就是监控目录下以complete结束的文件,支持正则匹配第二个监控目录下子目录(不过这方面业务我还没接触过)。
支持断点续传功能,如果Agent挂掉后,他配置的还有postion存放文件数据偏移量,可以从postion记录的位置读取,具有很强的健壮性。
补充:
fileHeader是个布尔值,可配置为true或者false,表示在flume读取数据之后,是否在封装出来的event中将文件名添加到event的header中。
fileHeaderKey表示,如果event中有了header(当fileHeader配置为true)时,header中存储文件名的

Channel

MemoryChannel

作用:所有的events被保存在内存中。
优点:高吞吐。
缺点:容量有限并且Agent死掉时会丢失内存中的数据。
配置介绍:
  capacity:设置内存中允许存储的大小(event个数为100)
  transactionCapacity:每次连接传输允许的大小,默认是capacity/10-100

FileChannel

作用:所有的events被保存在文件中。
优点:容量较大且死掉时数据可恢复。
缺点:速度较慢。
配置介绍:
  在linux中,datadir默认是最大只保留两个文件(3.2G),每个文件最大1.6G,log-7.meta是元数据,log-代表1,2,3,4等,如果之前的文件名称是log-1,log-2,如果来了log-3,那么log-1就删除了

Sink

hdfs:
  文件回滚:
    时间:hdfs.rollInterval
    禁用:0

    大小:hdfs.rollSize
    选用文件大小回滚k*128M+{2,3,4},131000000,132000000

    个数:hdfs.rollCount
    禁用:0

  设置时间分区:
    %Y%m%da1.sinks.k1.hdfs.path=/flume/events/%y-%m-%d/%H%M/%S

  在设置的文件开头后边的时间戳
    hdfs.useLocalTimeStamp=true

  如何设置文件开头:
    hdfs.filePrefix=*

  线程等待时间:
    hdfs.idleTimeout
    设置为0,会一直进行数据收集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值