flume日记

  1. 概念
    Agent:flume的实例,本质为JVM进程
    event:flume定义的数据流传输的最小单元
    sources:数据的来源和方式
    channels:数据缓冲池
    sinks: 数据输出的方式和目的地
  2. flume常用sources\sinks\channels
    sources:netcat/avro/kafka/spooldir(针对文件目录上传)/TAILDIR(支持断点上传、多文件上传)
    sinks:logger/hdfs/hive/avro/hbase/kafka
    channels:memory(内存)\file\jdbc\kafka
  3. flume事务流程图
    流程图
    Put事务
    doPut:将数据先写入临时缓冲区putList
    doCommit:检查channels中内存队列是否足够合并
    doRollback:channels内存队列空间不足,数据回滚
    Take事务
    doTake:将数据取到临时缓冲区takeList,并发送数据到sinks
    doCommit:如果数据发送成功,则清楚临时缓冲区takeList
    doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takeList中数据归还给channels内存队列。
  4. flume传输图
    传输图
  5. flume拓扑结构
    1. 串联
      串联
      一旦传输某个flume宕机,影响整个流程传输

    2. 聚合
      聚合
      每台服务器部署一个flume日志采集,然后数据汇集到几台服务器,然后数据在汇总到hdfs,分析日志数据(避免了多台服务器一同访问hdfs造成连接压力)

    3. 复制和多路复用
      默认状态为复制;多路复用:multiplexing,一般和选择器一同使用。
      复制和多路复用

    4. 负载均衡和故障转移
      负载均衡和故障转移
      一般为sinks.groups类型,负载均衡采取了轮询和随机两种负载方法,默认轮询。如果backoff设置为true则启用了退避机制,失败的sink会被放入黑名单,达到一定的超时时间后会自动从黑名单移除。 如从黑名单出来后sink仍然失败,则再次进入黑名单而且超时时间会翻倍,以避免在无响应的sink上浪费过长时间。 如果没有启用退避机制,在禁用此功能的情况下,发生sink传输失败后,会将本次负载传给下一个sink继续尝试,因此这种情况下是不均衡的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值