web-dev-qa-db-fra.com

Cassandra cqlsh - connexion refusée

Je viens de commencer à travailler avec Cassandra (datastax), version 2.1.3 et cqlsh version 5.0.1.

Cassandra démarre bien et le cluster est opérationnel instantanément.

Cqlsh ne fonctionne pas (sur aucun des nœuds) et émet l'erreur suivante:

Erreur de connexion: ('' Impossible de se connecter à aucun serveur ', {' 127.0.0.1 ': erreur (111, "Tentative de connexion à [(' 127.0.0.1 ', 9042)]. Dernière erreur: Connexion refusée") })

J'ai essayé de démarrer cqlsh avec l'adresse IP de l'hôte, d'autres hôtes IP, des ports différents, mais le résultat reste le même - toujours, la connexion est refusée.

43
Chros

Essayez de changer le rpc_address pour qu'il pointe vers l'IP du nœud au lieu de 0.0.0.0 et spécifiez l'adresse IP lors de la connexion au cqlsh, comme si l'IP était 10.0.1.34 et que le rpc_port restait à la valeur par défaut 9160, les conditions suivantes devraient fonctionner: 

cqlsh 10.0.1.34 9160 

Ou:

cqlsh 10.0.1.34 

Assurez-vous également questart_rpcest défini sur true dans le fichier de configuration /etc/cassandra/cassandra.yaml.

15
Ruba

Vous devez modifier cassandra.yaml sur le nœud auquel vous essayez de vous connecter, définir l'adresse IP du nœud pour rpc_address et listen_address et redémarrer Cassandra.

rpc_address est l'adresse sur laquelle Cassandra écoute les appels des clients.

listen_address est l'adresse sur laquelle Cassandra écoute les autres nœuds Cassandra.

14
jny

Ceci est dû à certaines pré-configurations dans la cassandra. Et pour résoudre ce problème, le fichier cassandra-env.sh contient les lignes commentées suivantes:

#add this if you’re having trouble connecting:
#JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>

où vous devez commencer à corriger l'erreur.

Ouvrez le terminal et commencez à réparer en suivant les étapes simples suivantes:

Étape 1

utilisation

Sudo nano /etc/cassandra/cassandra-env.sh

cette commande et recherchez JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname= décommentez la ligne en supprimant simplement # attaché au début de la ligne.

NOTE: Si vous n'avez jamais ouvert ce fichier pour corriger cette erreur, alors vous trouverez JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>

Étape 2 Maintenant, remplacez <public name> par 127.0.0.1 

Étape 3 Enregistrez le fichier et redémarrez la Cassandra en utilisant systemctl restart cassandra.service (si le serveur n’est pas déjà en cours d’exécution). OR démarrez la cassandra en utilisant systemctl start cassandra.service (si le serveur n'est pas en cours d'exécution).

Étape 4 Vérifiez l'état en utilisant Sudo service cassandra status ou systemctl status cassandra.service.

Remarque: Une fois que vous avez vérifié sur le moniteur du système que cassandra fonctionne ou pas.

Essayez maintenant cqlsh. Ça va marcher.

Remarque: nano est un éditeur que vous pouvez utiliser avec d'autres éditeurs avec lesquels vous êtes à l'aise.

3
Gaurav Paliwal

Avait le même problème récemment après le déclassement de Cassandra 3.0 à Cassandra 2.2 sur ArchLinux. 

Contrairement aux solutions ci-dessus, mon problème n'était pas dans .cassandra, mais la version 3.0 a laissé sa configuration dans le répertoire/var/lib/cassandra. 

Les commandes suivantes ont résolu mon problème:

Sudo rm -R /var/lib/cassandra
Sudo rm -R /var/log/cassandra
Sudo rm -R /usr/share/cassandra

Ensuite, j'ai installé Cassandra et tout a encore fonctionné :)

3
Michal

Si vous vérifiez le fichier system.log pour cassandra dans / var/log/cassandra, vous verrez que ce problème se produit car le serveur rpc n'a pas démarré. 

Par défaut, start_rpc est défini sur false dans le fichier cassandra.yaml. Définissez-le sur start_rpc: true, puis réessayez.

Au moins dans Cassandra 3.0, start_rpc est défini sur true par défaut. https://docs.datastax.com/fr/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html

3
Rokin

Recherchez native_transport_port dans /etc/cassandra/cassandra.yaml La valeur par défaut est 9842.

native_transport_port: 9842

Pour se connecter à localhost avec cqlsh, ce port a fonctionné pour moi.

cqlsh 127.0.0.1 9842

2
Amit Teli

C'est une bonne idée de vérifier le journal de cassandra si même le serveur est en cours d'exécution. Je recevais exactement le même message et je ne pouvais rien faire avec cela, puis j'ai découvert qu'il y avait des erreurs dans le journal et que le système ne fonctionnait pas.

Stupide, je sais, mais pourrait arriver ...

2
TomS

essayez de remplacer le native_transport_protocol par le port 9160 (s'il est défini sur autre chose que 9160; il est possible qu'il pointe vers 9042). Consultez vos journaux et voyez sur quel port cassandra écoute les clients CQL?

1
Mayur Kurkure

Pour moi, il s'est avéré que le service ne fonctionnait pas du tout. Vérifier avec 

service cassandra status

Si vous rencontrez la même erreur que moi ou un autre type, vous ne pourrez pas résoudre le problème avec des adresses IP.

L'erreur que j'ai eu:

cassandra dead but pid file exists

Edit: C’est la solution à mon problème: https://stackoverflow.com/a/46743119/3881406

1
Andras Kloczl

J'essayais de l'exécuter sur un lecteur réseau. J'ai donc augmenté le client_timeout dans cqlsh et cela a fonctionné.

0
TonyStark

Essayez de telnet à l'adresse donnée. Dans mon cas, il y avait un pare-feu en place qui me bloquait. 

0
Jason White

Lorsque j'ai installé Cassandra 3.11.1, je suis tombé sur ce problème. J'ai vérifié le fichier /var/log/cassandra/cassandra.log et j'ai trouvé cette erreur Une exception s'est produite au démarrage .... C'est un bogue déjà signalé. Le lien de publication d'origine https://issues.Apache.org/jira/browse/CASSANDRA-14173 .

La solution est de déclasser Cassandra à 3.0

  1. télécharger Cassandra rpm

curl -O https://www.Apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm

ou

wget https://www.Apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm

  1. rpm -ivh cassandra-3.0.15-1.noarch.rpm
  2. service cassandra start
  3. service cassandra status # vérifier le statut de cassandra 

cassandra (pid 2322) est en cours d'exécution ...

  1. cqlsh # start cassandra
0
Hunter

Je rencontrais le même problème avec Cassandra 3.11.0, chaque fois que je changeais l’adresse de rpc ou que l’écoute, cqlsh ne fonctionnerait pas. J'ai dû ajouter la même adresse IP locale à seeds

Donc, après beaucoup d'essais et d'erreurs, mon travail sur cassandra.yml s'est terminé comme suit:

class-name: org.Apache.cassandra.locator.SimpleSeedProvider
parameters: 
    -seeds: "192.168.0.30"

listen_adress: 192.168.0.30
rpc_address: 192.168.0.30
0
Eduardo Dennis

Assurez-vous que vous définissez également "graines" à l'adresse que vous avez fournie à "listen_address"

0
Erhard Dinhobl