web-dev-qa-db-fra.com

Comment configurer cassandra pour la connexion à distance

J'essaie de configurer Cassandra Datastax Community Edition pour une connexion à distance sur Windows,

Cassandra Server est installé sur un PC Windows 7, Avec le CQLSH local, il se connecte parfaitement au serveur local.

Mais quand j'essaye de me connecter avec CQLSH d'un autre PC dans le même réseau, j'obtiens ce message d'erreur:

Erreur de connexion: ('Impossible de se connecter à des serveurs', {'MYHOST': erreur (10061, "Tentative de connexion à [('Host_IP', 9042)]. Dernière erreur: Aucune connexion n'a pu être établie car la machine cible a activement refusé il")})

Je me demande donc comment configurer correctement (quelles modifications dois-je apporter au fichier de configuration cassandra.yaml) le serveur Cassandra pour autoriser les connexions à distance.

Merci d'avance!

11
Obama

L'accès à distance à Cassandra se fait via son port d'épargne pour Cassandra 2.0. Dans Cassandra 2.0.x, l'écoute cqlsh par défaut) le port est 9160 qui est défini dans cassandra.yaml par le paramètre rpc_port. Par défaut, Cassandra 2.0.x et versions antérieures active Thrift en configurant start_rpc sur true dans le fichier cassandra.yaml.

Dans Cassandra 2.1, l'utilitaire cqlsh utilise le protocole natif. Dans Cassandra 2.1, qui utilise le pilote Datastax python, le port d'écoute cqlsh par défaut est 9042.

Le nœud cassandra doit être lié à l'adresse IP de la carte réseau de votre serveur - il ne doit pas être 127.0.0.1 ou localhost qui est l'adresse IP de l'interface de bouclage, la liaison à cela empêchera l'accès direct à distance . Pour configurer l'adresse liée, utilisez le paramètre rpc_address dans cassandra.yaml. La définition de cette valeur sur 0.0.0.0 permettra d'écouter sur toutes les interfaces réseau.

Avez-vous vérifié que la machine distante peut se connecter au nœud Cassandra? Y a-t-il un pare-feu entre les machines? Vous pouvez essayer ces étapes pour le tester:

1) Assurez-vous que vous pouvez vous connecter à cette adresse IP depuis le serveur sur lequel vous êtes:

$ ssh [email protected]

2) Vérifiez l'état du nœud et confirmez qu'il affiche la même IP:

$ nodetool status

) Exécutez la commande pour vous connecter à l'IP (spécifiez le port uniquement si vous n'utilisez pas la valeur par défaut):

$ cqlsh xxx.xxx.xx.xx

16
Kat

Que dis-tu de ça:

Apportez ces modifications dans le fichier de configuration cassandra.yaml:

start_rpc: true

rpc_address: 0.0.0.0

broadcast_rpc_address: [node-ip]

listen_address: [node-ip]

seed_provider:
  - class_name: ...
    - seeds: "[node-ip]"

référence: https://Gist.github.com/andykuszyk/7644f334586e8ce29eaf8b93ec6418c4

17
ahll

Solution alternative à Kat. Fonctionné avec Ubuntu 16.04

  1. ssh dans le serveur server_user@**.**.**.**
  2. Arrêtez cassandra si vous exécutez:

    • Vérifiez si vous exécutez avec ps aux | grep cassandra
    • S'il est en cours d'exécution, produira un grand bloc de commandes/drapeaux, par ex.

      ubuntu 14018 4,6 70,1 2335692 712080 pts/2 Sl + 04:15 0:11 Java -Xloggc: ./../ logs/gc.log ........

      La note 14018 dans l'exemple est l'ID de processus

    • Arrêtez avec kill <process_id> (dans ce cas 14018)
  3. modifier le fichier cassandra.yaml comme suit

    • rpc_address: 0.0.0.0
    • broadcast_rpc_address: **.**.**.** <- IP de votre serveur (ne peut pas être réglé sur 0.0.0.0)
  4. Redémarrez cassandra ./bin/cassandra -f (de l'intérieur cassandra root)
  5. Ouvrez un autre terminal sur la machine locale et connectez-vous via cqlsh **.**.**.** (IP de votre serveur) à tester.

Le ./bin/nodetool status l'adresse a signalé mon adresse IP locale (127.0.0.1), mais cqlsh fonctionnait à distance malgré cela.

9
ChickenFeet

Pour une liste et une explication de toutes les options de configuration de cassandra.yaml, vous pouvez aller sur: http://cassandra.Apache.org/doc/latest/configuration/cassandra_config_file.html#rpc-address

0
knowledgy