我正在运行一些实验来测试Apache Flink的容错功能 . 我目前正在使用HiBench框架和为Flink实现的WordCount微基准测试 .
我注意到如果我在执行期间杀死了一个TaskManager,Flink运算符的状态在自动“重新部署”之后被恢复,但是从基准发送到Kafka的许多(全部?)元组被遗漏(存储在Kafka中但未在Flink中接收) ) .
似乎在恢复之后, FlinkKafkaConsumer
(基准测试使用FlinkKafkaConsumer08)代替从失败开始读取之前的最后一次偏移读取开始读取最新可用的读取(丢失在失败期间发送的所有事件) .
有什么建议吗?
谢谢!
1 回答
问题在于HiBench框架本身以及最新版本的Flink .
我必须在基准测试中更新Flink的版本,以便在Kafka使用者中使用“setStartFromGroupOffsets()”方法 .