Uso del puerto de Cassandra: ¿cómo se usan los puertos?

96

Al experimentar con Cassandra, he observado que Cassandra escucha los siguientes puertos:

  • 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

¿Cómo usa Cassandra cada uno de los puertos enumerados?

Knorv
fuente
13
Adamse: ¡Gracias por el dato! Probablemente sea así, pero por el bien de los futuros usuarios de Cassandra en Stackoverflow (¡una población en crecimiento!) Creo que es bueno tener la respuesta almacenada aquí también :-)
knorv

Respuestas:

131

@Schildmeijer tiene razón, sin embargo, el puerto 7001 todavía se usa cuando se usa la comunicación de internodo cifrado TLS

Entonces mi lista completa sería para las versiones actuales de Cassandra:

  • 7199 - JMX (era 8080 antes de Cassandra 0.8.xx)
  • 7000 - Comunicación entre nodos (no se usa si TLS está habilitado)
  • 7001 - Comunicación entre nodos TLS (se usa si TLS está habilitado)
  • 9160 - API de cliente Thrift
  • 9042 - Puerto de transporte nativo CQL
Matthew O'Riordan
fuente
4
Aquí está el enlace actualizado a partir de 2017 a la documentación oficial cassandra.apache.org/doc/latest/faq/index.html#what-ports
Johnride
44

Para Apache Cassandra 2.0, debe tener en cuenta los siguientes puertos TCP : (Consulte la configuración del grupo de seguridad EC2 y las Preguntas frecuentes de Apache Cassandra )

Casandra

  • 7199 Puerto de monitoreo JMX
  • 1024 - 65355 Puerto aleatorio requerido por JMX. Comenzando con Java 7u4, se puede especificar un puerto específico usando elcom.sun.management.jmxremote.rmi.port propiedad.
  • 7000 Clúster entre nodos
  • 7001Clúster entre nodos de SSL
  • 9042 Puerto de transporte nativo CQL
  • 9160 Ahorro

DataStax OpsCenter

  • 61620 demonio de opscenterd
  • 61621 Agente
  • 8888 Sitio web

Arquitectura

Una posible arquitectura con Cassandra + OpsCenter en EC2 podría verse así: AWS EC2 con OpsCenter

Joscas
fuente
35

8080 - JMX (remoto)

8888 - depurador remoto (eliminado en 0.6.0)

7000 - Usado internamente por Cassandra
(7001 - Obsoleto, eliminado en 0.6.0. Usado para comunicación de miembros, también conocido como chismes)

9160 - API de cliente Thrift

Preguntas frecuentes de Cassandra ¿Qué puertos usa Cassandra?

Schildmeijer
fuente
7

JMX ahora usa el puerto 7199 en lugar del puerto 8080 (a partir de Cassandra 0.8.xx).

Esto se puede configurar en su archivo cassandra-env.sh, pero el valor predeterminado es 7199.

David
fuente
5

Los puertos 57311 y 57312 son puertos asignados aleatoriamente que se utilizan para la comunicación RMI. Estos puertos cambian cada vez que se inicia Cassandra, pero deben estar abiertos en el firewall, junto con 8080/7199 (según la versión), para permitir el acceso JMX remoto. Algo que no parece estar particularmente bien documentado, pero que me ha hecho tropezar en el pasado.

chrisbunney
fuente
1
Para la posteridad, esta molestia debe solucionarse, a partir de Cassandra 2.0.8 de acuerdo con este ticket . El valor predeterminado cassandra-env.shahora establece la com.sun.management.jmxremote.rmi.portpropiedad en el mismo valor que el puerto JMX principal para que no se utilicen puertos aleatorios.
ches
0

Además de las respuestas anteriores, como parte de la configuración de su firewall, si está usando SSH, use el puerto 22.

Keerthikanth Chowdary
fuente
0

Resolví el problema siguiendo los pasos a continuación:

  1. Detener los servicios de cassandara

    sudo su -
    systemctl stop datastax-agent
    systemctl stop opscenterd
    systemctl stop app-dse
    
  2. Realice una copia de seguridad y cambie el puerto de 9042 a 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. Iniciar los servicios de Cassandra

    systemctl start datastax-agent
    systemctl start opscenterd
    systemctl start app-dse
    
  4. crear archivo cqlshrc.

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

Gracias, mahesh

mahesh agrawal
fuente