2016-06-09 52 views
0

星火流的状态信息到外部数据库:星火流:阅读和写作像卡桑德拉

当有代码的变化引发的流应用程序,我要清理检查点来部署新的变化。实际上,我正在放松历史状态,这真的很糟糕。

有没有一种方法可以保存和重建像Cassandra这样的外部数据库的状态信息,除了定期检查指向,spark默认提供?

请您指点一下这方面的一些编码示例。

+0

看到我需要保持星火流状态,以便处理在这方面的传入事件。因此我们无法避免检查点。我的查询是如何周期性地将Spark流状态RDD(不是OUTPUT数据)保存到外部数据存储中,让我们每12小时说一次? – vanba06

回答

1

如果您使用的是无接收方式的方式,如Kafka direct API,那么您可以获取读取主题的偏移量并将其存储到Cassandra(或任何db)中。在你的init中,你必须读取Cassandra的偏移量,并在直接API中使用它。通过这种方式,您可以轻松避免检查点并升级您的jar。

访问DSTREAM偏移的例子都可以在这里 offset reading example

+0

我需要维护Spark流状态,以便在该上下文中处理传入事件。因此我们无法避免检查点。我的查询是如何周期性地将Spark流状态RDD(不是OUTPUT数据)保存到外部数据存储中,让我们每12小时说一次? – vanba06