如何使用检查点更改Spark Streaming应用程序?

时间:2016-06-15 09:31:59

标签: apache-spark spark-streaming

请考虑以下情况:

  • 通过Spark流创建初始管道
  • 启用检查点
  • 运行应用程序一段时间
  • 停止流媒体应用
  • 对管道进行了微小的改动,例如业务逻辑保持不变,但做了一些重构,重命名,上课等等。
  • 重新启动流应用程序
  • 获得异常,因为存储在checkpoint目录中的管道在类级别上与新的
  • 不同

处理这种情况的最佳做法是什么?如何在启用检查点的情况下无缝升级流应用程序?流媒体应用程序版本控制的最佳实践是什么?

1 个答案:

答案 0 :(得分:1)

tl; dr 检查点适用于恢复情况,不适用于升级。

来自official documentation about Checkpointing

  

流应用程序必须全天候运行,因此必须能够适应与应用程序逻辑无关的故障(例如,系统故障,JVM崩溃等)。为此,Spark Streaming需要将足够的信息检查到容错存储系统,以便它可以从故障中恢复。

因此,要回答有关使用检查点(用于容错)和更改应用程序代码的问题,您不应该期望它会起作用,因为它违反了设计。