我试图理解Spark Streaming中的状态管理是如何工作的。如果我运行这个示例程序两次,第二次运行会从第一次运行看到状态吗? https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/StatefulNetworkWordCount.scala
有没有办法如何实现这一目标?我正在考虑重新部署应用程序,我不想放弃当前的状态。
答案 0 :(得分:1)
tl; dr 这取决于您需要其他实例查看的内容。 Checkpointing 通常是解决方案。
ssc.checkpoint(".")
(the line 50 in StatefulNetworkWordCount)启用了检查点(引用official documentation):
Spark Streaming需要将足够的信息检查到容错存储系统,以便它可以从故障中恢复。
失败可被视为一种重新部署形式。 Upgrading Application Code下的官方文档中描述了两种情况: