Exception lors de la connexion à Cassandra avec CQL à l'aide de DataStax Java driver 1.0.4
J'ai Cassandra 1.2.11 en cours d'exécution sur mon ordinateur portable. Je peux me connecter à l'aide de nodetool
et cqlsh
mais quand j'ai essayer d'utiliser le DataStax 1.0.4 API Java pour se connecter à l'aide de CQL 3.0 j'obtiens l'erreur suivante:
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1 ([localhost/127.0.0.1] Unexpected error during transport initialization (com.datastax.driver.core.TransportException: [localhost/127.0.0.1] Channel has been closed)))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:186)
Je suis en utilisant le code suivant pour vous connecter, pris de la DataStax de la documentation. J'ai essayé plusieurs numéro de port, y compris en laissant les withPort()
appeler mais rien ne semble fonctionner.
Cluster cluster = new Cluster.Builder()
.addContactPoints("localhost")
.withPort(9160)
.build();
À l'aide de telnet
je peux vérifier que le serveur de Cassandra est certainement à l'écoute à chacun des ports j'ai spécifié. J'ai également vérifié que tous les requis de la bibliothèque les fichiers jar sont sur mon classpath comme décrit dans la documentation.
OriginalL'auteur grkvlt | 2013-12-05
Vous devez vous connecter pour publier un commentaire.
Il s'avère que j'ai raté un article dans la la documentation.
J'ai été en utilisant un vieux
cassandra.yaml
fichier de configuration à partir d'une version antérieure de Cassandra et il n'a pas d'activer le Natif de Transport protocole binaire. L'extrait suivant montre les paramètres que j'avais besoin de changer:Après le redémarrage de Cassandra, le client a été en mesure de se connecter et exécuter CQL 3.0 commandes. Notez que le code pour créer la connexion doit être modifiée pour utiliser le port spécifié dans le fichier, comme ceci:
Aussi, on remarque que dans Cassandra 1.2.5 et au-dessus, le natif de transport est activé par défaut.
OriginalL'auteur grkvlt
Vous obtiendrez cette erreur lorsque vous essayez d'utiliser une ancienne version de java, avec un pilote plus récent cassandra version.
OriginalL'auteur Douglas Rapp
J'ai le même problème sous Ubuntu. J'ai installé récemment avec la commande ci-dessous qui a été le datastax directive
avant que j'ai utilisé juste
c'est le même problème pour moi. J'ai juste enlevé puis installé à la première commande (datastax de directive).
P. S. Pour supprimer le cassandra utiliser la commande ci-dessous
OriginalL'auteur Esmaeil Mirzaee