簡體   English   中英

卡桑德拉火花塞數據丟失

[英]Cassandra spark connector data loss

不久之前,我們正在使用datastax spark連接器計算一些統計信息。 重復的查詢在每次執行時都會破壞不同的結果。

背景:我們有大約。 3節點卡桑德拉群集中的112K條記錄。 該表具有名為guid單個分區鍵UUID列,而沒有群集鍵列。

這是我定義用來檢查損失的簡單guid提取器:

val guids = sc.cassandraTable[UUID]("keyspace","contracts").select("guid")

接下來,我已經多次將數據重復提取到本地集合中

val gss = List.fill(20)(Set(guids.collect():_*))
val gsall = gss reduce (_ | _)
val lost = gss map (gsall &~ _ size)

結果lostList(5970, 7067, 6926, 6683, 5807, 7901, 7005, 6420, 6911, 6876, 7038, 7914, 6562, 6576, 6937, 7116, 7374, 6836, 7272, 7312)

因此每個查詢有6,17±0,47%數據丟失

這可能是卡桑德拉,火花或連接器的問題嗎? 並在每種情況下-是否存在一些防止這種情況的配置方式?

我閱讀了一些文檔,並了解到可以並且應該為這種情況設置閱讀一致性水平。 申報后

implicit val readConf = ReadConf.fromSparkConf(sc.getConf).copy(
    consistencyLevel = ConsistencyLevel.ALL)

我有穩定的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM