Cassandra kann nicht über R verbunden werden
Ich versuche einem Beispiel zu folgen, das auf "http://www.datastax.com/dev/blog/big-analytics-with-r-cassandra-and-hive"um R mit Cassandra zu verbinden. Folgendes ist mein Code:
library(RJDBC)
#Load in the Cassandra-JDBC diver
cassdrv <- JDBC("org.apache.cassandra.cql.jdbc.CassandraDriver", list.files("D:/cassandra/lib",pattern="jar$",full.names=T))
#Connect to Cassandra node and Keyspace
casscon <- dbConnect(cassdrv, "jdbc:cassandra://127.0.0.1:9042/demodb")
Wenn ich den obigen Code in R ausführe, erhalte ich folgende Fehlermeldung:
Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], :
java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2113929216)!
Erhalten Sie auf dem Cassandra-Serverfenster den folgenden Fehler für den obigen Code:
ERROR 14:41:26,671 Unexpected exception during request
java.lang.ArrayIndexOutOfBoundsException: 34
at org.apache.cassandra.transport.Message$Type.fromOpcode(Message.java:1
06)
at org.apache.cassandra.transport.Frame$Decoder.decode(Frame.java:168)
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDeco
der.java:425)
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(Fram
eDecoder.java:303)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:26
8)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:25
5)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(Abstract
NioWorker.java:109)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNi
oSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioW
orker.java:90)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ich habe versucht, den Port von 9042 auf 9160 zu ändern. In diesem Fall erreicht die Anforderung den Server nicht. Ich habe auch versucht, die Größe von zu erhöhenthrift_framed_transport_size_in_mb
von 15 bis 500, aber der Fehler ist der gleiche.
Die Cassandra läuft ansonsten einwandfrei und die Datenbank kann einfach über "devcenter" verbunden / aktualisiert werden.
R version: R-3.1.0,
Cassandra version: 2.0.8,
Operating System: Windows,
XP Firewall: off