gpt4 book ai didi

apache-spark - 没有足够的副本可用于一致性 LOCAL_ONE 的查询(需要 1 个,但只有 0 个存活)

转载 作者:行者123 更新时间:2023-12-05 05:21:43 25 4
gpt4 key购买 nike

我正在运行 spark-cassandra-connector 并遇到了一个奇怪的问题:我将 spark-shell 运行为:

bin/spark-shell --packages datastax:spark-cassandra-connector:2.0.0-M2-s_2.1

然后我运行以下命令:

import com.datastax.spark.connector._
val rdd = sc.cassandraTable("test_spark", "test")
println(rdd.first)
# CassandraRow{id: 2, name: john, age: 29}

问题是以下命令会出错:

rdd.take(1).foreach(println)
# CassandraRow{id: 2, name: john, age: 29}
rdd.take(2).foreach(println)
# Caused by: com.datastax.driver.core.exceptions.UnavailableException: Not enough replicas available for query at consistency LOCAL_ONE (1 required but only 0 alive)
# at com.datastax.driver.core.exceptions.UnavailableException.copy(UnavailableException.java:128)
# at com.datastax.driver.core.Responses$Error.asException(Responses.java:114)
# at com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:467)
# at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1012)
# at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:935)
# at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)

下面的命令只是挂起:

println(rdd.count)

我的 Cassandra key 空间似乎具有正确的复制因子:

describe test_spark;
CREATE KEYSPACE test_spark WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'} AND durable_writes = true;

如何解决上述两个错误?

最佳答案

我假设您在使用 LOCAL_ONE(spark 连接器默认值)一致性时遇到了 SimpleStrategy 和 multi-dc 的问题。它会在本地 DC 中寻找一个节点来发出请求,但是有可能所有副本都存在于不同的 DC 中并且不满足要求。 ( CASSANDRA-12053 )

如果你change your consistency level (input.consistency.level to ONE) 我想会解决的。您还应该真正考虑改用网络拓扑策略。

关于apache-spark - 没有足够的副本可用于一致性 LOCAL_ONE 的查询(需要 1 个,但只有 0 个存活),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42446887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com