我正在运行一个从 Kafka 读取数据的 Spark Streaming 应用程序。我已激活检查点以在发生故障时恢复作业。
问题是,如果应用程序失败,当它重新启动时,它会尝试仅在一个微批次中执行故障点的所有数据。 这意味着,如果一个微批处理通常从 Kafka 接收 10.000 个事件,如果它失败并在 10 分钟后重新启动,它将不得不处理一个包含 100.000 个事件的微批处理。
现在,如果我希望通过检查点恢复成功,我必须分配比正常情况更多的内存。
重新启动时,Spark Streaming 尝试从检查点一次执行所有过去的事件是否正常,还是我做错了什么?
非常感谢。