flume 面试题集锦
1. flume事务
上述是官网简介,可以看出事务体现在source到channel和channel到sink2个阶段
对于数据的事物控制,其实可以分为3种,
at least once,至少一次
at most once最多一次
exactly once刚好一次
顾名思义,刚好一次是最好的,不多也不少,mysql就是采用这种机制,但带来的性能损耗是非常大的.
大数据领域,一般采用至少一次,因为数据重复可以去重,但性能对于海量数据其实也是需要着重考虑的.数据也尽量不丢失,at most once则很可能数据丢失,并不适合大数据处理.
flume中有很多种source\channel\sink类型,并不是每种组合起来都能实现事物控制,例如exec source就不能实现事务控制,如果选择memeory channel,一旦机器断电,则数据就会丢失,也无法实现很好的事务控制
flume的事务控制有四个生命周期函数,start\commit\rollback\close
put完时间之后,commit来提交事务,如果commit异常则rollback回滚
如果commit成功,则source将提交