spring-boot - 如何连接到不同dc中的多个Cassandra

标签 spring-boot apache-spark cassandra spark-cassandra-connector spring-data-cassandra

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

这是我正在使用的代码:

Spark 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.defineDataCenter 执行)。 SCC 较新版本将使用其他 DC 的节点...

关于spring-boot - 如何连接到不同dc中的多个Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828491/

相关文章:

tomcat - DSE 3.0 Solr : Tomcat giving 404 errors

RCassandra 没有连接到 Cassandra 数据库

java - 在 cassandra 中设置 TTL 后无法运行选择查询

java - Spring Boot启动失败——bean之间存在循环依赖

java - 如何在 Spring Boot 中注册和设置默认消息转换器

hadoop - Spark yarn-cluster 模式 - 读取通过 --files 传递的文件

scala - SBT测试错误: java. lang.NoSuchMethodError : net. jpountz.lz4.LZ4BlockInputStream

java - Spring Boot Gradle 快速构建,跳过非必要内容

java - 如何设置jetty runnier应用程序的WebAppContext?

java - 从 Java 中的 DataFrame 查找每天的最大行程 - Spark