我正在使用从Kafka到HDFS的Flink bucketing sink。 Flink的版本是1.4.2。 我发现每次重新启动作业时都会丢失一些数据,即使有保存点也是如此。 我发现如果我设置编写器SequenceFile.CompressionType.RECORD而不是SequenceFile.CompressionType.BLOCK可以解决这个问题。当Flink试图保存检查点时,有效长度与实际长度不同,实际长度应包括压缩数据。 但是,如果由于磁盘使用而无法使用CompressionType.BLOCK,则可能会出现问题。如何在重新启动作业时使用块压缩防止数据丢失? 这是Flink的已知问题吗?或者有人知道如何解决这个问题?
Flink的BucketingSink
不再被推荐使用。相反,社区建议使用Flink StreamingFileSink
引入的1.6.0
。