当前位置: 首页 > 知识库问答 >
问题:

流媒体应用重启后如何保持状态?

薛英卫
2023-03-14

我正在尝试了解 Spark 流式处理中的状态管理通常如何工作。如果我运行此示例程序两次,第二次运行是否会看到第一次运行的状态?https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/StatefulNetworkWordCount.scala

有没有办法做到这一点?我正在考虑重新部署一个应用程序,我希望不要松动当前状态。

共有1个答案

壤驷兴朝
2023-03-14

TL;这取决于你需要其他实例看到什么。检查点通常是一种解决方案。

< code>ssc.checkpoint(" . ")(在StatefulNetworkWordCount的第50行)启用检查点(引用官方文档):

Spark Streaming需要向容错存储系统检查足够的信息,以便它可以从故障中恢复。

失败可以被认为是重新部署的一种形式。在升级应用程序代码下的官方文档中对此进行了描述,其中列出了两种情况:

  • 两个实例并行运行
  • 一个被优雅地放下,另一个从检查点目录中读取状态。
 类似资料:
  • 我正在使用Google的YouTube API Explorer(备用)来查找属于其他人的任意流媒体广播的信息。 无论我在字段中输入了什么,我都会返回 这似乎很荒谬,考虑到视频显然是流媒体。 我突然想到,我可能误解了字段的说明,所以我尝试了几种不同的可能性。这些包括。。。 频道ID() 用户ID() 视频ID() ...每个都无济于事。 我如何询问一个频道有关其直播流视频的信息?这个问题在过去可以

  • 选择无状态滑动窗口操作的一些注意事项是什么(例如,通过updateStateByKey或新mapStateByKey)选择保持状态(例如通过updateStateByKey或新mapStateByKey)时,使用火花流处理连续的有限事件会话流? 例如,考虑以下场景: 一种可穿戴设备跟踪由穿戴者进行的体育锻炼。该装置自动检测何时开始锻炼,并发出信息;在锻炼过程中发出附加信息(如心率);最后,当练习完

  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • 目前我正在使用Streaming API(https://stream.twitter.com/1/statuses/filter.json)。 连接成功后,我会将服务器上的所有推文记录到数据库中。只有在运行了几个小时或几天没有问题后,问题才会出现,然后无法检索更多推文。如果我重新启动客户端,处理会恢复正常,一切正常,直到下一次挂起。

  • 我写了Kafka流应用程序,我想把它部署在Kafka集群上。因此,我构建了一个jar文件,并使用以下命令运行它:

  • 我有一个带有ui路由器的AngularJS应用程序,它使用带有超媒体的REST API。一般的想法是让API为其各种调用生成URL,并防止客户机自己构造URL。 还有别的想法吗? 除非我在这方面非常错误,否则我不是在寻找模板化的解决方案,即API返回一个url模板的解决方案,该url模板需要客户机注入参数。关键在于url已经填充了数据,因为有些url比上面提供的示例要复杂得多。