nebula exchange工具 kafka数据到spark是否会出现偏移量异常导致数据丢失的情况

  • nebula 版本:v3.5.0
  • 部署方式:分布式
  • 安装方式:Docker
  • 是否上生产环境:Y
  • 硬件信息
    • 磁盘 SATA
    • 64C 128G
      -通过spark-submit提交spark-streaming程序消费topic数据时,假设spark程序突然停止,在停止时已消费到了偏移量为 100的数据,此时又往topic发送了100条数据,然后重新启动了spark-streaming进行数据消费,这个时候Exchange消费kafka是从哪个偏移量开始消费?从我们跟踪来看是从偏移量200开始消费的,这样就会导致偏移量 100-200的数据丢失。如果希望从100开始继续消费应该要怎么设置?
1 个赞

@nicole 请问这个问题之前有遇到过吗

1 个赞

我理解应该是不支持的。
有个配置是startingOffsets ,默认配的是latest。除非把过程中的offset保存到某个地方,下次启动的时候再去读之外,估计每次启动都是最新的数据

请问对一个索引执行rebuild后,在两个小时内,4个节点的storage会在不同时间段重启(docker容器),最终导致rebuild失败, 这个是什么原因导致的

你可以关注两个配置项:
auto.offset.reset:指定最新消费的offset,exchange可配,earliest 或latest, 默认latest
enable.auto.commit:值为false,不可配

关于auto.offset.reset:

earliest
当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
latest
当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据

看你有没有配置开始消费的offset,以及是否有其他消费者也在消费

2 个赞

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。