我正在使用KafkaUtils.createDirectStream Kafka API来使用消息,然后正在处理消息以存储在Hive中。由于无法访问Hive metastore,有时作业失败了。 重新启动后,我看到它总是从“最新”消息开始读取(因为在我的代码中为auto.offset.reset = latest),而不是从最后提交的消息读取。在这种情况下,它将失去补偿。 因此,我想在整个处理完成后存储偏移量,以便在检索消息失败时可以检索它。
请建议我如何使用KafkaUtils.createDirectStream将偏移量存储在Kafka中,以确保完成整个Kafka作业。