如何连接到不同DC中的多个Cassandra

How to connect to multiple Cassandra in different dc

我正在设置一个应用程序,我在其中使用 spark session 从 Cassandra 读取数据。如果我从 dc 传递一个 Cassandra 节点,我能够从 Cassandra 读取数据。 但是我如何连接到 3 个不同的 Cassandra 节点,它们属于 spark session.

中的 3 个不同的 dc

这里是我使用的代码:

火花session

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

如有任何帮助,我们将不胜感激

提前致谢。

Spark Cassandra 连接器 (SCC) 仅允许使用来自本地数据中心的节点,这些节点由 spark.cassandra.connection.local_dc 配置参数定义,或者由接触点的 DC 确定(执行通过函数 LocalNodeFirstLoadBalancingPolicy.determineDataCenter)。较新的SCC将使用来自其他DC的节点...