• flume 进阶


    一、flume事务

       put事务流程:

      1、doPut:将批量数据先写入临时缓冲区putList

      2、doCommit:检查Channel内存队列是否足够,

      (1)达到一定时间没有数据写入到putList

      (2)达到了putListCapcity容量

      3、doRollback:Channel内存队列空间不足,回滚数据到putList,会被channel打回来

      take事务流程:

      1、doTake:将数据取到临时缓冲区takeList,并将数据发送到HDFS

      2、doCommit:如果数据全部发送成功,则清除临时缓冲区takeList

      3、doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takeList中数据全部打回给Channel内存队列

    二、Flume Agent内部原理

      

       重要组件:

      1)ChannelSelector

        ChannelSelector的作用就是选出event将要被发往哪个Channel。

        共有两种类型:Replicating(复制)Multiplexing(多路复用)

        ReplicatingSelector会将同一个event发往所有的Channel

        MultiplexingSelector会根据相应的原则,将不同的event发往不同的Channel

      2)SinkProcessor

        sinkProcessor共有三种类型:DefaultSinkProcessorLoadBalancingProcessorFailoverSinkProcessor

        DefaultSinkProcessor:对应的是单个sink

        LoadBalancingProcessor:对应的是sink group,可以实现负载均衡

        FailoverSinkProcessor:对应的是sink group,可以实现故障恢复

    三、flume拓扑结构

      1、简单串联

         将多个flume顺序连接起来,从最初的Source开始到最终sink传送的目的存储系统。

        此模式不建议桥接过多的flume数量,flume数据过多不仅会影响传输速率,而且一旦传输过程中某个节点flume宕机,会影响整个传输系统

      2、复制和多路复用

         flume支持将事件流向一个或者多个目的地。

        这种模式可以将相同数据复制到多个Channel中,或者将不同数据分发到不同的Channel中,sink可以选择传送到不同的目的地

      3、负载均衡和故障转移

      

       flume支持使用将多个sink逻辑上分到一个sink组,sink组配合不同的sinkProcessor可以实现负载均衡和错误恢复的功能

      4、聚合

       

        这种模式是我们最常见的,也非常实用,日常web应用通常分布在上百个服务器,大者甚至上千个、上万个服务器。产生的日志,处理  起来也非常麻烦。

        用flume的这种组合方式能很好的解决这一问题,每台服务器部署一个flume采集日志,传送到一个集中收集日志的flume,再由此flume  上传到hdfs、hive、hbase等,进行日志分析。

  • 相关阅读:
    函数式编程
    橡皮筋功能
    socket
    git命令补充说明
    参考接口文档完成的json数据
    接口文档怎么写
    使用json-server创建mock数据
    proxy服务器代理
    Cannot read property 'setState' of undefined错误分析
    使用ref报错,addComponentAsRefTo(...): Only a ReactOwner can have refs.
  • 原文地址:https://www.cnblogs.com/hyunbar/p/11812680.html
Copyright © 2020-2023  润新知