关于Flume事务管理机制分析
发布时间
阅读量:
阅读量
Flume事务机制解析
1.核心概念界定
1.1 事务的介绍
Flume中所定义的事务与关系型数据库中的事务概念存在差异,二者仅在名称上具有相似性!
Flume中的事务实质上是指一组具备原子性特征的事件(events),这些事件要么整体被写入到channel中,要么整体从channel中被移除!
在Flume的设计理念中,采用的是at least once语义。这意味着在系统运行正常、无任何故障发生的情况下,数据只会被写入一次!
然而,一旦sink端出现超时或向文件系统写入失败等异常情况,Flume将启动重试机制,持续尝试直至所有数据成功写入!
这种机制可能导致数据出现重复现象!
那么,面对数据重复的问题该如何处理?
如果对数据的重复性不敏感,则无需特别处理。
但如果对数据的准确性有较高要求,则建议在数据中设置一个唯一的标识字段,在实际使用过程中通过该字段实现去重操作!
1.1.1 put事务
在事务处理过程中,source会将封装完成的event传递给ChannelProcessor,由ChannelProcessor对这批events进行处理。在处理阶段,首先会将events存入putList中,待存储操作完成后,通过一次性的commit()操作实现数据的提交,从而确保这批events能够被正确写入至c
全部评论 (0)
还没有任何评论哟~
