Użycie portu Cassandra - jak używane są porty?

97

Eksperymentując z Cassandrą zauważyłem, że Cassandra nasłuchuje następujących portów:

  • 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

W jaki sposób Cassandra używa każdego z wymienionych portów?

knorv
źródło
13
adamse: Dzięki za cynk! Prawdopodobnie tak, ale ze względu na przyszłych użytkowników Cassandry na Stackoverflow (rosnąca populacja!) Myślę, że dobrze jest mieć tutaj również odpowiedź :-)
knorv

Odpowiedzi:

131

@Schildmeijer ma w dużej mierze rację, jednak port 7001 jest nadal używany podczas korzystania z szyfrowanej komunikacji Internode TLS

Więc moja pełna lista dotyczyłaby aktualnych wersji Cassandry:

  • 7199 - JMX (było 8080 przed Cassandra 0.8.xx)
  • 7000 - Komunikacja międzywęzłowa (nie używana, jeśli włączony jest TLS)
  • 7001 - Komunikacja TLS Internode (używana, jeśli włączony jest TLS)
  • 9160 - Thrift Client API
  • 9042 - Natywny port transportowy CQL
Matthew O'Riordan
źródło
4
Oto aktualne łącze z 2017 r. Do oficjalnej dokumentacji cassandra.apache.org/doc/latest/faq/index.html#what-ports
Johnride,
44

W przypadku Apache Cassandra 2.0 należy wziąć pod uwagę następujące porty TCP : (zobacz konfigurację grupy zabezpieczeń EC2 i często zadawane pytania dotyczące Apache Cassandra )

Cassandra

  • 7199 port monitorowania JMX
  • 1024 - 65355 Losowy port wymagany przez JMX. Począwszy od języka Java 7u4, można określić konkretny port za pomocą com.sun.management.jmxremote.rmi.portwłaściwości.
  • 7000 klaster między węzłami
  • Klaster między węzłami 7001 SSL
  • 9042 Natywny port transportowy CQL
  • 9160 Thrift

DataStax OpsCenter

  • 61620 Demon opscenterd
  • 61621 Agent
  • 8888 Witryna

Architektura

Możliwa architektura z Cassandra + OpsCenter na EC2 może wyglądać następująco: AWS EC2 z OpsCenter

joscas
źródło
35

8080 - JMX (zdalne)

8888 - Zdalny debugger (usunięty w wersji 0.6.0)

7000 - Używany wewnętrzny przez Cassandrę
(7001 - Przestarzały, usunięty w wersji 0.6.0. Używany do komunikacji z członkostwem, aka plotki)

9160 - Thrift Client API

Cassandra - często zadawane pytania Z jakich portów korzysta Cassandra?

Schildmeijer
źródło
7

JMX używa teraz portu 7199 zamiast portu 8080 (od Cassandra 0.8.xx).

Można to skonfigurować w pliku cassandra-env.sh, ale wartość domyślna to 7199.

David
źródło
5

Porty 57311 i 57312 to losowo przypisane porty używane do komunikacji RMI. Porty te zmieniają się przy każdym uruchomieniu Cassandra, ale muszą być otwarte w zaporze, wraz z 8080/7199 (w zależności od wersji), aby umożliwić zdalny dostęp do JMX. Coś, co nie wydaje się być szczególnie dobrze udokumentowane, ale w przeszłości mnie zaskoczyło.

chrisbunney
źródło
1
Dla potomności ta irytacja powinna zostać naprawiona, począwszy od Cassandry 2.0.8, zgodnie z tym biletem . Wartość domyślna cassandra-env.shustawia teraz com.sun.management.jmxremote.rmi.porttę samą wartość co główny port JMX, dzięki czemu losowe porty nie są używane.
ches
0

Oprócz powyższych odpowiedzi, w ramach konfiguracji zapory, jeśli używasz SSH, użyj portu 22.

Keerthikanth Chowdary
źródło
0

Rozwiązałem problem, wykonując poniższe czynności:

  1. Zatrzymaj usługi cassandara

    sudo su -
    systemctl stop datastax-agent
    systemctl stop opscenterd
    systemctl stop app-dse
    
  2. Weź kopię zapasową i zmień port z 9042 na 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. Uruchom usługi Cassandra

    systemctl start datastax-agent
    systemctl start opscenterd
    systemctl start app-dse
    
  4. utwórz plik cqlshrc.

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

Dzięki, Mahesh

mahesh agrawal
źródło