2016-06-09 70 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