美文网首页
初识Flume

初识Flume

作者: 谭英智 | 来源:发表于2020-08-15 16:40 被阅读0次

    Flume是一个高可用,高可靠,分布式的海量日志采集聚合和传输系统,核心是把数据从数据源(source)收集,并把收集的数据发送到目的地(sink),为了保证传输成功,在送到目的地之前会先缓存(channel)数据,在真正到达目的地后,再删除缓存

    overview

    flume-overview

    sources

    • avro/thrift/exec/JMS/spooldir/kafka/Netcat/syslog/...

    sink

    • hdfs/hive/avro/thrift/irc/hbase/elasticsearch/kafka/http/....

    channel

    • memory/JDBC/kafka/file/pseudo...

    当配置source为spooldir时,如果同一个文件被采集两次,flume会抛异常,并停止工作

    load-balance

    flume-lb

    通过客户端agent1配置负载均衡策略,三台服务器会负载客户端的日志上传,如果有一台down机,流量由其他两台进行负载

    failover/ha

    flume-lb

    通过客户端agent1配置高可用策略,会对三台服务器设置优先级,优先级最高的会take全部traffic,如果down机,会由次优先级的机器take全部traffic

    拦截器

    flume-difflog

    用同一个客户端agent读取多个源,通过设置源的头部,可以在服务器agent中区分不同的log,并写入不同的目的地

    异常

    丢数据

    • 事务机制

      对于source,一旦事务所有时间传送到channel,会把源标志位已完成,从channel到sink也是类似的

    • at-least-once

      保证至少一次提交到sink,会引起重复数据

    • 批处理

      通过设置源的batchsize,以事务为单位处理时间,一个事务包含多个事件,这有利于提高读源的效率

    • channel

      memory channel可以实现高吞吐,但无法保证数据完整性

      File channel可以保存到file中,可以保证数据的完整和一致性,但会降低效率

    exec tail -f/memory channel会造成数据丢失

    数据重复

    tailDir source/hdfs sink会存在数据重复,不会丢失数据

    相关文章

      网友评论

          本文标题:初识Flume

          本文链接:https://www.haomeiwen.com/subject/qwgwcktx.html