【发布时间】:2019-09-13 15:48:32
【问题描述】:
我正在设置一个应用程序,在该应用程序中我使用 spark session 从 Cassandra 读取数据。如果我从 dc 传递一个 Cassandra 节点,我可以从 Cassandra 读取数据。 但是如何在 spark 会话中连接到属于 3 个不同 dc 的 3 个不同 Cassandra 节点。
这里是我正在使用的代码:
火花会话
spark = SparkSession.builder().appName("SparkCassandraApp")
.config("spark.cassandra.connection.host", cassandraContactPoints)
.config("spark.cassandra.connection.port", cassandraPort)
.config("spark.cassandra.auth.username", userName).config("spark.cassandra.auth.password", password)
.config("spark.dynamicAllocation.enabled", "false").config("spark.shuffle.service.enabled", "false")
.master("local[4]").getOrCreate();
属性文件:
spring.data.cassandra.contact-points=cassandra1ofdc1, cassandra2ofdc2, cassandra3ofdc3
spring.data.cassandra.port=9042
当我尝试上述场景时,我得到以下异常: 原因:
java.lang.IllegalArgumentException: requirement failed: Contact points contain multiple data centers: dc1, dc2, dc3
任何帮助将不胜感激
提前致谢。
【问题讨论】:
-
为什么需要使用其他数据中心的节点?新的驱动程序版本使用相同的规则来选择所有操作的本地 DC
标签: spring-boot apache-spark cassandra spark-cassandra-connector spring-data-cassandra