3
我使用Apache Spark和Spark Cassandra Connector將數百萬行寫入Cassandra羣集。複製因子使用下列選項設置爲3,我在火花提交(YARN客戶端模式)設置寫一致性ALL:Cassandra與批量更新不一致
spark-submit ...
--conf spark.cassandra.output.consistency.level=ALL \
--conf spark.cassandra.output.concurrent.writes=1 \
--conf spark.cassandra.output.batch.size.bytes=20000 \
...
我然後寫另一個星火工作算我已寫入的數據。我成立了新的工作如下的一致性:
spark-submit ...
--conf spark.cassandra.input.consistency.level=ONE \
--conf spark.cassandra.input.split.size=50000 \
...
從文檔,如果寫一致性加上讀一致性大於複製因子越大,我應該有一致的讀取。
但我發現了以下結果:
- 讀取作業給我不同的結果(計數),我每次運行它時
- 如果我增加了讀作業的一致性水平我得到的預期結果
我錯過了什麼?是否有任何默認設置的祕密配置(例如,如果在寫入過程中發生問題,然後降低一致性級別或類似的東西......),還是我使用卡桑德拉的錯誤版本(它是2.1.2),或者spark-cassandra-connector用於將數據保存到Cassandra(我只是簡單地使用「saveToCassandra」方法)嗎?
怎麼回事?
這聽起來像是一個bug,你可以在連接器github網站上報告它嗎?我猜測輸出一致性級別沒有得到適當的應用。對代碼的粗略瀏覽使我認爲它正在工作,但更多細節將有所幫助(編寫命令,集羣設置,節點數量,dcs ...) – RussS 2014-12-07 21:54:44