Spark Streaming with Kinesis - 如何强制检查点?

Spark Streaming with Kinesis - How to force checkpoint?

我有一个从 Aws Kinesis 读取数据的流应用程序。

默认情况下,当您创建流接收器时,您可以选择在哪个时间间隔执行检查点,这是在 DynamoDB 上完成的。

在某个时候我想停止我的应用程序 (sparkStreamingContext.stop()) 但在此之前我想强制执行一个检查点。

可以吗?

我知道如果检查点在文件系统上,我应该这样做 sparkStreamingContext.checkpoint(directoryName) 但是 kinesis 的检查点在 DynamoDB 上,那我该怎么做呢?

谢谢!

无法强制检查点。检查点是 Spark 的一种实现细节,用于恢复和保证消息的传递。因此你不能简单地 "invoke a checkpoint" 如你所愿。

如果您真的想控制何时保存数据,您还需要自己管理状态。