Flume事务和可靠性

Flume的事务和可靠性

一、Flume的事务

flume的事务有两个,一个是put事务,一个是take事务,put事务负责从source端到channel端,take事务负责从channel端到sink端

flume工作流图
Put 事务流程
doPut:将批数据先写入临时缓冲区 putList
doCommit:检查 channel 内存队列是否足够合并
doRollback:channel 内存队列空间不足,回滚数据

Take 事务流程
doTake:将数据取到临时缓冲区 takeList,并将数据发送到 HDFS
doCommit:如果数据全部发送成功,则清除临时缓冲区 takeList
doRollback:数据发送过程中如果出现异常,rollback 将临时缓冲区 takeList 中的数据归还给 channel 内存队列

二、可靠性

At-least-once提交方式,导致了数据可能会重复,但不会丢失
批处理机制: 为了提高效率,Flume尽可能的以事务为单位来处理事件,而不是逐一基于事件进行处理。比如kafka source默认以消费100个event作为一个批次,可以通过适当调节批次大小来提升效率
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值