Apache Flume HDFS接收器文件写入有哪些保证?

时间:2017-03-29 16:12:45

标签: apache hadoop hdfs flume

如果Flume代理在HDFS文件写入过程中被杀(比如使用Avro格式),有人可以了解一下会发生什么吗?该文件是否会损坏,所有事件都会丢失?

据我所知,Flume数据链的不同元素之间存在交易(source-> channel-> sink)。但我相信HDFS文件可能在连续的通道 - >接收器事务(如.tmp)之间保持打开状态。因此,如果100个事件的一个事务成功(并且事件存储在文件中,事务已提交)并且下一个事件在HDFS写入的中间失败,则可能是来自第一个事务的原始100个事件不可读(因为例如文件损坏?)。 Flume如何确保第一笔交易的原始100件事件不会受到此类故障的影响?或者也许不保证吗?

1 个答案:

答案 0 :(得分:0)

如果Flume代理在HDFS文件写入过程中被终止,则该文件不会被破坏,也不会丢失数据。

当水槽代理被杀时,如果水槽正在写入文件说FlumeData123456789.tmp,那么直到该点为止所有写入该文件的记录将保持不变,文件将保存为FlumeData123456789。