I Funken cassandra-Anschluss leite und eine seltsame Frage schlagen: Ich betreibe das Funken Shell als:Nicht genügend Kopien für Abfrage auf Konsistenz LOCAL_ONE (1 erforderlich, aber nur 0 lebendig)
bin/spark-shell --packages datastax:spark-cassandra-connector:2.0.0-M2-s_2.1
dann laufe ich die folgenden Befehle:
import com.datastax.spark.connector._
val rdd = sc.cassandraTable("test_spark", "test")
println(rdd.first)
# CassandraRow{id: 2, name: john, age: 29}
Problem, dass Befehl finden Sie einen Fehler gibt:
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)
Und der folgende Befehl hängt nur:
println(rdd.count)
Mein Cassandra Schlüsselraum scheint den richtigen Replikationsfaktor zu haben:
describe test_spark;
CREATE KEYSPACE test_spark WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'} AND durable_writes = true;
Wie sowohl die obigen Fehler zu beheben?