Utilisation du port Cassandra - Comment les ports sont-ils utilisés?

96

En expérimentant avec Cassandra, j'ai observé que Cassandra écoute les ports suivants:

  • TCP *: 8080
  • TCP *: 8888
  • TCP *: 57311
  • TCP *: 57312
  • TCP 127.0.0.1:7000
  • TCP 127.0.0.1:9160
  • UDP 127.0.0.1:700

Comment Cassandra utilise-t-il chacun des ports répertoriés?

knorv
la source
13
Adamse: Merci pour la pointe! C'est probablement le cas, mais pour le bien des futurs utilisateurs de Cassandra sur Stackoverflow (une population croissante!) Je pense qu'il est bon d'avoir la réponse stockée ici aussi :-)
knorv

Réponses:

131

@Schildmeijer a en grande partie raison, mais le port 7001 est toujours utilisé lors de l'utilisation de la communication entre nœuds cryptés TLS

Ma liste complète serait donc pour les versions actuelles de Cassandra:

  • 7199 - JMX (avant 8080 avant Cassandra 0.8.xx)
  • 7000 - Communication entre nœuds (non utilisée si TLS activé)
  • 7001 - Communication entre nœuds TLS (utilisée si TLS est activé)
  • 9160 - API client Thrift
  • 9042 - Port de transport natif CQL
Matthew O'Riordan
la source
4
Voici le lien à jour à partir de 2017 vers la documentation officielle cassandra.apache.org/doc/latest/faq/index.html#what-ports
Johnride
44

Pour Apache Cassandra 2.0, vous devez prendre en compte les ports TCP suivants : (Voir configuration du groupe de sécurité EC2 et FAQ Apache Cassandra )

Cassandra

  • 7199 Port de surveillance JMX
  • 1024 - 65355 Port aléatoire requis par JMX. À partir de Java 7u4, un port spécifique peut être spécifié à l'aide de la com.sun.management.jmxremote.rmi.portpropriété.
  • 7000 cluster inter-nœuds
  • Cluster inter-nœuds SSL 7001
  • 9042 Port de transport natif CQL
  • 9160 Économie

DataStax OpsCenter

  • 61620 démon opscenterd
  • Agent 61621
  • 8888 Site Web

Architecture

Une architecture possible avec Cassandra + OpsCenter sur EC2 pourrait ressembler à ceci: AWS EC2 avec OpsCenter

joscas
la source
35

8080 - JMX (distant)

8888 - Débogueur distant (supprimé dans la version 0.6.0)

7000 - Utilisé en interne par Cassandra
(7001 - Obsolète, supprimé dans la version 0.6.0. Utilisé pour la communication avec les membres, aka potins)

9160 - API client Thrift

FAQ Cassandra Quels ports utilise Cassandra?

Schildmeijer
la source
7

JMX utilise désormais le port 7199 au lieu du port 8080 (à partir de Cassandra 0.8.xx).

Ceci est configurable dans votre fichier cassandra-env.sh, mais la valeur par défaut est 7199.

David
la source
5

Les ports 57311 et 57312 sont des ports affectés de manière aléatoire utilisés pour la communication RMI. Ces ports changent à chaque démarrage de Cassandra, mais doivent être ouverts dans le pare-feu, avec 8080/7199 (selon la version), pour permettre un accès JMX à distance. Quelque chose qui ne semble pas particulièrement bien documenté, mais qui m'a fait trébucher dans le passé.

Chrisbunney
la source
1
Pour la postérité, ce désagrément devrait être corrigé, à partir de Cassandra 2.0.8 selon ce ticket . La valeur par défaut cassandra-env.shdéfinit désormais la com.sun.management.jmxremote.rmi.portpropriété sur la même valeur que le port JMX principal afin que les ports aléatoires ne soient pas utilisés.
ches
0

En plus des réponses ci-dessus, dans le cadre de la configuration de votre pare-feu, si vous utilisez SSH, utilisez le port 22.

Keerthikanth Chowdary
la source
0

J'ai résolu le problème en utilisant les étapes ci-dessous:

  1. Arrêter les services de cassandara

    sudo su -
    systemctl stop datastax-agent
    systemctl stop opscenterd
    systemctl stop app-dse
    
  2. Prenez la sauvegarde et changez le port de 9042 à 9035

    cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
    Vi /opt/dse/resources/cassandra/conf/cassandra.yaml
    native_transport_port: 9035
    
  3. Démarrez les services Cassandra

    systemctl start datastax-agent
    systemctl start opscenterd
    systemctl start app-dse
    
  4. créer un fichier cqlshrc.

    vi  /root/.cassandra/cqlshrc
    
    [connection]
    hostname = 198.168.1.100
    port = 9035
    

Merci, Mahesh

mahesh agrawal
la source