web-dev-qa-db-fra.com

Apache Cassandra accès à distance

J'ai installé Apache Cassandra sur le serveur distant Ubuntu. Comment autoriser l'accès à distance pour une base de données Apache Cassandra? Et comment établir une connexion?

24
user1588782

L’accès à distance à Cassandra se fait via son port d’épargne (bien que le port JMX puisse être utilisé pour effectuer certaines opérations limitées).

Le port thrift est défini dans cassandra.yaml par le paramètre rpc_port, dont la valeur par défaut est 9160. Votre nœud cassandra doit être lié à l'adresse IP de la carte réseau de votre serveur. Il ne doit pas s'agir de 127.0.0.1 ou localhost qui est l'adresse IP de l'interface de bouclage, liée à cela empêchera l'accès direct à distance. Vous configurez l'adresse liée avec le paramètre rpc_address dans cassandra.yaml. Définir ceci sur 0.0.0.0 indique "écoute sur toutes les interfaces réseau", ce qui peut ne pas vous convenir.

Pour établir une connexion, vous pouvez utiliser:

  • Cassandra-cli dans le répertoire bin de la distribution cassandra fournit des opérations simples get/set/list et dépend de Java
  • Le shell cqlsh qui fournit un accès CQL à cassandra, cela dépend de Python
  • Une interface de niveau supérieur telle que Apollo
46
CraigJPerry

Pour ceux qui trouvent cette question maintenant, la meilleure réponse est obsolète.

L'interface d'épargne d'Apache Cassandra est obsolète et sera supprimée dans Cassandra 4.0. Le port client par défaut est maintenant 9042.

Comme l'a noté Tyler Hobbs, vous devrez vous assurer que le paramètre rpc_address n'est pas défini sur 127.0.0.1 ou localhost (il s'agit de localhost par défaut). Si vous définissez 0.0.0.0 pour écouter toutes les interfaces, vous devrez également définir broadcast_rpc_address sur l'adresse IP publique ou privée du nœud (en fonction de la manière dont vous envisagez de vous connecter à Cassandra).

Cassandra-cli est également déconseillée et Apollo n'est plus actif. Utilisez cqlsh au lieu de cassandra-cli et le pilote Java au lieu d’Apollo.

Je ne recommande pas de rendre le port JMX accessible à distance à moins que vous le sécurisiez correctement en activant SSL et l'authentification forte.

J'espère que c'est utile.

5
Justin Cameron

Pour ceux qui utilisent Azure, le problème peut être que vous devez créer une adresse IP publique car l'adresse IP virtuelle pointe vers le service de cloud proprement dit et non vers la machine virtuelle. Vous pouvez trouver plus d'informations dans cet article

3

cassandra 3.11.3

J'ai fait ce qui suit pour que le mien fonctionne. Changements dans cassandra.yaml:

start_rpc: true

rpc_address: 0.0.0.0

broadcast_rpc_address: ***.***.***.***

broadcast_rpc_address est l'adresse de la machine sur laquelle cassandra est installée

 seed_provider:
  - class_name: ...
    - seeds: "127.0.0.1, ***.***.***.***"

Dans les graines, j'ai ajouté/ajouté l'adresse IP de la machine où cassandra fonctionnait.

J'y ai accédé depuis Windows en utilisant tableplus . Dans tableplus, j'ai écrit l'adresse IP de la machine Cassandra, dans la section port, j'ai écrit 9042 et utilisé le nom d'utilisateur et le mot de passe que j'ai utilisés pour la connexion SSH.

0
Amit L