【问题标题】:Spark Cassandra Issue with KeySpace ReplicationKeySpace 复制的 Spark Cassandra 问题
【发布时间】:2018-05-14 09:22:53
【问题描述】:

我在 Cassandra 中使用以下命令创建了表:

CREATE KEYSPACE test WITH REPLICATION = { 'class' : 
'NetworkTopologyStrategy', 'dc1' : 3 } AND DURABLE_WRITES = false;  

use test;

create table demo(id int primary key, name text);

成功创建表后,我运行以下代码将数据从 Spark 写入 Cassandra。
但遇到以下错误

Spark 代码片段

import com.datastax.spark.connector._
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import com.datastax.spark.connector.cql._

val connectorToClusterOne = CassandraConnector(sc.getConf.set("spark.cassandra.connection.host","xx.xx.xx.xx").set("spark.cassandra.auth.username", "xxxxxxx").set("spark.cassandra.auth.password", "xxxxxxx"))

---K/V---
val data = sc.textFile("/home/ubuntu/test.txt").map(_.split(",")).map(p => demo(p(0).toInt,p(1)))

implicit val c = connectorToClusterOne
data.saveToCassandra("test","demo")

以下是错误说明:

使用数据中心 dc1 计算密钥空间测试的令牌映射时出错:无法实现复制因子 3(仅找到 0 个副本),请检查您的密钥空间复制设置。

谁能提出可能的原因。

【问题讨论】:

    标签: apache-spark cassandra


    【解决方案1】:

    此错误通常是因为请求未指向正确的集群,或者数据中心不存在或名称不正确。

    为确保您连接到正确的集群,请仔细检查用于您的 spark 应用程序的连接主机。

    要检查数据中心,请使用nodetool status 确保您请求的数据中心存在并且不包含无关空格。

    最后,数据中心中的所有节点都可能已关闭,因此请仔细检查。

    【讨论】:

    • 我跑了 nodetool status ,下面是同样的结果。 Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN xxx.xxx.xxx.xxx 81.19 KiB 256 67.1% e0156fb8-e2a9-42fd-b691-ec545bf3f9d4 rack1 UN xxx.xxx.xxx.xxx 79.61 KiB 256 66.3% b6467692-8894-4c4e-879b-4fcb2ac8b749 rack1 UN xxx.xxx.xxx.xxx 88.94 KiB 256 66.6% 9b7d86c8-8526-4053-9380-10a9be897811 rack1
    • 这是数据中心出错的情况。您的数据中心未命名为 dc1,而是命名为 datacenter1。由于dc1 没有数据中心,dc1 中永远不会有可用的副本
    猜你喜欢
    • 1970-01-01
    • 2018-09-22
    • 2021-09-15
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 2018-11-28
    • 1970-01-01
    相关资源
    最近更新 更多