Cassandra与批更新不一致

Cassandra与批更新不一致,cassandra,apache-spark,Cassandra,Apache Spark,我使用ApacheSpark和Spark Cassandra连接器将数百万行写入Cassandra集群。复制因子设置为3,我使用以下选项将spark submit(纱线客户端模式)中的写入一致性设置为ALL: spark-submit ... --conf spark.cassandra.output.consistency.level=ALL \ --conf spark.cassandra.output.concurrent.writes=1 \ --conf spark.cassandra

我使用ApacheSpark和Spark Cassandra连接器将数百万行写入Cassandra集群。复制因子设置为3,我使用以下选项将spark submit(纱线客户端模式)中的写入一致性设置为ALL:

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作业来计算我所写的数据。我将新工作的一致性设置为:

spark-submit ...
--conf spark.cassandra.input.consistency.level=ONE \
--conf spark.cassandra.input.split.size=50000 \
...
从文档中可以看出,如果写入一致性加上读取一致性大于复制因子,则应该具有一致的读取

但我得到了以下结果:

  • 每次运行read作业时,它都会给我不同的结果(计数)
  • 如果我提高读取作业的一致性级别,我会得到预期的结果
我错过了什么?是否存在默认设置的任何秘密配置(例如,在写入过程中出现问题,然后降低一致性级别,或者类似的情况……),或者我使用的是有缺陷的Cassandra版本(它是2.1.2),或者spark Cassandra connector用于将数据保存到Cassandra的批更新存在问题(我只是使用“saveToCassandra”方法


出了什么问题?

我确认这是连接器中的一个错误。正在对单个准备好的语句设置一致性级别,并且在我们使用批处理语句时会忽略。请遵循连接器上的更新-该修复将包含在下一个错误修复版本中。

我觉得这听起来像个错误,您能报告我吗在Connector github站点上没有?我猜输出一致性级别没有得到适当的应用。我粗略地看了一下代码,认为它可以工作,但更多细节会有所帮助(写入命令、群集设置、节点数、DC…)