Flume架构

Flume定义

系统

流式处理架构

海量日志采集、聚合、传输

基础架构

Agent:Source -> Channel -> Sink

一个 JVM 进程

event(事件)的形式将数据从源头送至目的地

整体架构

Source -> ChannelProcess -> Channel -> SinkProcess -> Sink

event:Flume 数据传输的基本单元

        Header:key = value

                存放属性

        Body:byte array

                存放数据


Source

接收数据

        Avro Source

                收集来自 Apache Avro 的数据

        Netcat Source

                从网络套接字读取数据

        Taildir Source

                从日志数据中读取数据


ChannelProcess

处理事件

Source -> ChannelProcess -> Interceptor -> ChannelSelector -> Channel

Interceptor:拦截器

        自定义 Java 拦截规则

ChannelSelector:选择器

        Replicating: 复制 <默认选择:default>

        Multiplexing:多路复用


Channel

缓冲区

        Memory Channel

                基于内存

        File Channel

                基于磁盘

        Kafka Channel

                使用kafka

可以同时处理几个Source的写入操作和几个Sink的读取操作


SinkProcessor

Channel -> SinkProcessor -> sink1、sink2、sink3

defaultSinkProcess

        默认:一个Channel对应一个Sink

LoadBalancingSinkProcess

        负载均衡

FailoverSinkProcess

        故障转移,实现Sink错误恢复的功能


Sink

        HDFS Sink:

                将数据写入 HDFS

        Hive Sink:

                将数据写入 Hive 表

        Logger Sink:

                将数据写入日志

  1. 轮询Channel中的事件

  2. 将事件批量写入到存储或索引系统

  3. 或者被发送到另一个Flume Agent

Flume事务

put事务

Source -> transaction -> Channel

transaction: doPut -> putList ->doCommit
------------- batch data ---  doRollback -----------------

doPut :将批数据写入临时缓冲区 putList

doCommit :检查内存队列是否足够合并

doRollback :内存队列空间不足,回滚数据

take事务

Channel -> transaction -> Sink

transaction: doTake -> takeList ->doCommit
------------- batch data  --- doRollback  -----------------

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

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

doRollback :数据发送过程出现异常,Rollback 将临时缓冲区takeList的数据归还给Channel内存队列

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tangy范

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值