web-dev-qa-db-fra.com

Impossible de se connecter au nœud cassandra d'un hôte différent

J'ai un nœud cassandra sur une machine. Lorsque j'accède à cqlsh à partir du même machne, cela fonctionne correctement.

Mais quand j'ai essayé de me connecter à son cqlsh en utilisant "192.x.x.x" à partir d'une autre machine, je reçois une erreur disant

Erreur de connexion: ('Impossible de se connecter à des serveurs', {'192.xxx': erreur (111, "Tentative de connexion à [('192.xxx', 9042)]. Dernière erreur: connexion refusée")} )

Quelle est la raison pour ça? Comment puis-je le réparer?

15

Probablement le nœud distant Cassandra n'est pas lié à l'interface réseau externe mais à l'interface de bouclage (c'est la configuration par défaut). Vous pouvez vous en assurer en utilisant "telnet thecassandrahost 9042" à partir de la machine distante , cela ne devrait pas fonctionner.

Pour lier Cassandra à l'interface réseau externe, vous devez modifier le fichier de configuration cassandra.yaml et définir les propriétés "listen_address" et "rpc_address "sur votre IP distante ou" 0.0.0.0 "(toutes les versions de Cassandra ne prennent pas en charge les adresses génériques).

Vérifiez également que le pare-feu est correctement configuré ou désactivé (le service Sudo iptables s'arrête).

18
Nicola Ferraro

Définissez le paramètre de configuration où se trouve ce fichier. Peut-être /etc/cassandra/cassandra.yaml.

cassandra.yaml

listen_address: 192.x.x.x
rpc_address: 192.x.x.x

Redémarrez ensuite le service.

5
Brandon Bradley

1.Mise à jour :./conf/cassandra.yaml

rpc_address: 0.0.0.0 ("0.0.0.0" allow anywhere IP,but you can appoint an IP)

\# broadcast_rpc_address: 1.2.3.4 (Delete comment if pc_address=0.0.0.0)

2. redémarrage

./bin/cassandra

Cas: J'ai rencontré un problème auquel je ne peux pas accéder à distance cassandra Lorsque j'utilise Java access cassandra

4
Moks

J'ai le même problème. Et je suis la réponse suivante dans ce post. Malheureusement, je n'ai pas de chance de le faire fonctionner. J'ai fait des recherches. Et ça marche maintenant. Voici mon changement.

  • Environnement Ubuntu Server 16.04.3 LTS sur VirtualBox, DSE version 5.1

  • Installer DSE

J'installe DSE suivre cette page https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/install/installGUIdse.html

  • Accédez à /etc/dse/cassandra/cassandra.yaml
  • Changez les 'graines' de 127.0.0.1 en {seriver ip} exp. le mien est 172.20.10.9
  • listen_address Dans le document officiel de DSE 5.1, il est dit "Ne spécifiez jamais 0.0.0.0; c'est toujours faux. Ce que j'ai fait, c'est commenter le paramètre 'listen_address'
  • Changement de 'rpc_address' de localhost à 0.0.0.0
  • 'broadcast_address' change l'adresse IP du serveur. Le mien est 172.20.10.9
  • 'broadcast_rpc_address' passe à l'IP du serveur
  • redémarrez dse attendez quelques minutes, cela change. Si cela ne fonctionne toujours pas, redémarrez la machine.

Ceci est mon journal en 15 secondes. `ubuntu08 @ ubuntu08: ~ $ nodetool status nodetool: Échec de la connexion à '127.0.0.1:7199' - ConnectException: 'Connexion refusée (Connexion refusée)'. ubuntu08 @ ubuntu08: ~ $ nodetool status

Erreur: le noeud n'a pas encore de system_traces, probablement toujours en amorçant ubuntu08 @ ubuntu08: ~ $ nodetool status

Datacenter: SearchGraphAnalytics

Status = Up/Down |/State = Normal/Leaving/Joining/Moving - Address Load Tokens Owners Host ID Rack UN 10.0.0.44 278.51 KiB 32? 19db0016-df63-4470-9921-f3b5fe4e9341 rack1 '

  • Je peux accéder en exécutant "cqlsh 172.20.10.9" à partir d'une machine locale ou d'une autre machine.

Ceci est un autre document pour Cassandra https://docs.datastax.com/en/developer/Java-driver/3.3/manual/address_resolution/

2
cicidi

Définissez le paramètre de configuration suivant dans le fichier cassandra.yaml (pour CentOS, il se trouve dans /etc/cassandra/default.conf)

rpc_address: 0.0.0.

Vérifiez que les valeurs suivantes sont identiques à celles ci-dessous (généralement, elles sont par défaut)

start_native_transport: true

native_transport_port: 9042

Dernière étape pour CentOS, mettre à jour la configuration du pare-feu et autoriser le port 9042 à travers pour les connexions entrantes

  1. Accédez au pare-feu à partir de "Système/Administration/Pare-feu" dans le menu CentOS
  2. Ajoutez le port sous "Autres ports"
0
Ram Pratap

Même après avoir défini le RPC_ADDRESS, cela n'a pas fonctionné pour moi, jusqu'à ce que je définisse le -e CASSANDRA_START_RPC=true option.

Il a toujours été défini sur false dans mon cas. J'ai essayé cela avec Ubuntu, Docker et Cassandra.

0
jAvA