2016-07-11 63 views
0

如果Spark應用程序代碼有任何更改,則Spark Streaming檢查點將不起作用...所以我想明確地將狀態信息保存到外部數據庫中,例如cassandra。將Spark Streaming狀態保存到外部數據庫中

如何週期性地將火花流狀態刷新到外部數據庫或磁盤?我不知道如何讀取所有狀態RDD信息並寫入DB /磁盤。有人可以給我的Java例子嗎?

+0

有人可以指導我如何週期性地刷新火花流狀態數據(不輸出數據)到外部數據庫或磁盤,可以說每12小時? – vanba06

回答

0

您可能會發現Spark的DataSources API文檔對於保存狀態很有用;它包含Java示例。

也有許多商店可以與Spark結合使用。下面是大部分:

+0

您指出的文檔是將Spark流輸出數據保存到外部數據源中,而不是SPARK STREAMING STATE數據。如何週期性地向外部數據庫或磁盤刷新火花流狀態,可以說每12個小時? – vanba06

+0

我並不確定輸出數據和你所指的數據是否有衝突。例如,如果您查看[cassandra的文檔](https://github.com/datastax/spark-cassandra-connector/blob/master/doc/8_streaming.md),則他們會在批處理和流式處理情況下使用.saveToCassandra,我很確定這個函數只是使用下面的數據源API。 – plambre

+0

Plambre,感謝您的答覆......您可能知道,SPARK具有執行有狀態事件處理的能力。這裏是簡化的UseCase。我有具有customerID的事件流,他的當前位置(拉特,長座標)。我想要點火來處理每個事件,並檢查客戶當前位置是否是他以前訪問的位置之一。如果沒有,輸出一個警報(客戶ID,LOCATION_ANAMOLY)。 – vanba06

相關問題