如果 Spark 应用程序代码有任何更改,Spark Streaming 检查点将不起作用...所以我想将状态信息显式保存到像 cassandra 这样的外部数据库中。
如何定期将 Spark Streaming 状态 FLUSH 到外部数据库或磁盘?我不知道如何读取所有状态 RDD 信息并写入数据库/磁盘。有人可以给我java的例子吗?
您可能会发现 Spark 的 DataSources API 文档对于保存状态很有用;它包含 Java 示例。
还有很多store可以和Spark结合使用。以下是其中大部分:
您需要对数据库进行异步(对 Spark 执行影响最小)调用,以使用 groupState 函数本身的键来存储更新后的状态。另一种方法是按预定的时间间隔读取检查点目录,并能够读取我正在探索的内容。