Uso da porta Cassandra - como as portas são usadas?

96

Ao fazer experiências com o Cassandra, observei que o Cassandra escuta as seguintes portas:

  • 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

Como o Cassandra usa cada uma das portas listadas?

Knorv
fonte
13
adamse: Obrigado pela dica! Provavelmente sim, mas para o bem dos futuros usuários do Cassandra no Stackoverflow (uma população em crescimento!), Acho bom ter a resposta armazenada aqui também :-)
knorv

Respostas:

131

@Schildmeijer está amplamente certo, no entanto a porta 7001 ainda é usada ao usar a comunicação entre nós criptografados por TLS

Portanto, minha lista completa seria para as versões atuais do Cassandra:

  • 7199 - JMX (era 8080 antes do Cassandra 0.8.xx)
  • 7000 - Comunicação entre nós (não usado se TLS habilitado)
  • 7001 - Comunicação internode TLS (usado se TLS habilitado)
  • 9160 - API do cliente Thrift
  • 9042 - Porta de transporte nativa CQL
Matthew O'Riordan
fonte
4
Aqui está o link atualizado de 2017 para a documentação oficial cassandra.apache.org/doc/latest/faq/index.html#what-ports
Johnride
44

Para o Apache Cassandra 2.0, você precisa levar em consideração as seguintes portas TCP : (Consulte a configuração do grupo de segurança EC2 e as perguntas frequentes do Apache Cassandra )

Cassandra

  • 7199 porta de monitoramento JMX
  • 1024 - 65355 Porta aleatória exigida pelo JMX. A partir do Java 7u4, uma porta específica pode ser especificada usando a com.sun.management.jmxremote.rmi.portpropriedade.
  • 7000 cluster entre nós
  • 7001 cluster inter-nós SSL
  • Porta de transporte nativa CQL 9042
  • 9160 Thrift

DataStax OpsCenter

  • 61620 opscenterd daemon
  • 61621 Agente
  • Site 8888

Arquitetura

Uma possível arquitetura com Cassandra + OpsCenter no EC2 poderia ser assim: AWS EC2 com OpsCenter

joscas
fonte
35

8080 - JMX (remoto)

8888 - Depurador remoto (removido em 0.6.0)

7000 - Usado internamente por Cassandra
(7001 - Obsoleto, removido em 0.6.0. Usado para comunicação de membros, também conhecido como fofoca)

9160 - API do cliente Thrift

Perguntas frequentes do Cassandra Quais portas o Cassandra usa?

Schildmeijer
fonte
7

O JMX agora usa a porta 7199 em vez da porta 8080 (a partir do Cassandra 0.8.xx).

Isso é configurável em seu arquivo cassandra-env.sh, mas o padrão é 7199.

David
fonte
5

As portas 57311 e 57312 são portas atribuídas aleatoriamente, usadas para comunicação RMI. Essas portas mudam cada vez que o Cassandra é inicializado, mas precisam ser abertas no firewall, junto com 8080/7199 (dependendo da versão), para permitir o acesso remoto ao JMX. Algo que não parece estar muito bem documentado, mas que me fez tropeçar no passado.

chrisbunney
fonte
1
Para a posteridade, este incômodo deve ser corrigido, a partir do Cassandra 2.0.8 de acordo com este tíquete . O padrão cassandra-env.shagora define a com.sun.management.jmxremote.rmi.portpropriedade com o mesmo valor da porta JMX principal para que as portas aleatórias não sejam usadas.
ches
0

Além das respostas acima, como parte da configuração do seu firewall, se você estiver usando SSH, use a porta 22.

Keerthikanth Chowdary
fonte
0

Resolvi o problema usando as etapas abaixo:

  1. Pare os serviços cassandara

    sudo su -
    systemctl stop datastax-agent
    systemctl stop opscenterd
    systemctl stop app-dse
    
  2. Faça backup e mude a porta de 9042 para 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. Inicie os serviços do Cassandra

    systemctl start datastax-agent
    systemctl start opscenterd
    systemctl start app-dse
    
  4. crie o arquivo cqlshrc.

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

Obrigado, Mahesh

mahesh agrawal
fonte