我正在设置一个应用程序,其中我正在使用 Spark 会话从 Cassandra 读取数据。如果我从 dc 传递一个 Cassandra 节点,我能够从 Cassandra 读取数据。但是我如何连接到 3 个不同的 Cassandra 节点,这些节点在 Spark 会话中属于 3 个不同的 dc。
这是我使用的代码:
火花会议
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
任何帮助将不胜感激
提前谢谢。
Cassandra连接器(SCC(允许仅使用本地数据中心的节点,这些节点由spark.cassandra.connection.local_dc
配置参数定义,或由接触点的DC确定(由功能LocalNodeFirstLoadBalancingPolicy.determineDataCenter
执行(。 较新的 SCC 将使用来自其他 DC 的节点...