【问题标题】:Spark Streaming with Kinesis - How to force checkpoint?使用 Kinesis 进行 Spark Streaming - 如何强制检查点?
【发布时间】:2017-02-08 12:01:41
【问题描述】:

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

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

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

有可能吗?

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

谢谢!

【问题讨论】:

    标签: spark-streaming amazon-kinesis


    【解决方案1】:

    强制检查点是不可能的。检查点是 Spark 的一种实现细节,用于恢复和保证消息的传递。因此,您不能随心所欲地简单地“调用检查点”。

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

    【讨论】:

    • 好的,那么函数 sparkStreamingContext.checkpoint(directoryName) 是干什么用的?我怎么能保证,当我停止应用程序时,只有我处理过的数据被检查点,而不是接收到的所有数据读取(例如,如果我的微批处理延迟并且它需要超过微批处理间隔才能完成?)
    • @nicola 告诉 Spark 应该检查到哪个目录。您可以做的最好的事情是通过sparkConf.set(“spark.streaming.stopGracefullyOnShutdown","true") 设置正常关机
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    相关资源
    最近更新 更多