2016-03-21 41 views
6
ben pencerelerde uzaktan bağlantı için Cassandra Datastax Community Edition yapılandırmak çalışıyorum

içinyerel mükemmel bağlayan yerel CQLSH ile uzaktan bağlantı

Cassandra Server, Windows 7 PC'de yüklü

, Cassandra'yı nasıl yapılandırılır sunucusu.

Connection error: ('Unable to connect to any servers', {'MYHOST': error(10061, "Tried connecting to [('HOST_IP', 9042)]. Last error: No connection could be made because the target machine actively refused it")})

Yani ben ne yapmanız gerektiğine değişiklikleri (doğru nasıl yapılandırılacağı merak ediyorum: i aynı Ağı başka PC'den CQLSH ile bağlanmaya çalıştığınızda

Ama ben bu hata mesajı alıyorum cassandra.yaml dosyasında) uzak sunuculara izin vermek için Cassandra sunucusu.

Teşekkürler!

cevap

10

Cassandra'ya uzaktan erişim, Cassandra 2.0 için tutum noktasından geçer. Cassandra 2.0.x'te, varsayılan cqlsh dinleme bağlantı noktası, cassandra.yaml dosyasında rpc_port parametresi tarafından tanımlanan 9160'dır. Varsayılan olarak, Cassandra 2.0.x ve önceki sürümler, cassandra.yaml dosyasında start_rpc öğesini true olarak yapılandırarak Thrift'i etkinleştirir.

Cassandra 2.1'de, cqlsh yardımcı programı yerel protokolü kullanır. Datastax python sürücüsünü kullanan Cassandra 2.1'de, varsayılan cqlsh dinleme bağlantı noktası 9042'dir.

Cassandra düğümü sunucunuzun ağ kartının IP adresine bağlı olmalıdır - bu, 127.0.0.1 veya localhost olmamalıdır. Geri döngü arabiriminin IP'si, buna bağlanacaksa doğrudan uzaktan erişimi engelleyecektir. Bağlı adresi yapılandırmak için cassandra.yaml dosyasında rpc_address parametresini kullanın. Bunu 0.0.0.0'a ayarlamak tüm ağ arayüzlerini dinleyecektir.

Uzak makinenin Cassandra düğümüne bağlanabildiğini kontrol ettiniz mi? Makineler arasında bir güvenlik duvarı var mı? Bunu test etmek için aşağıdaki adımları deneyebilirsiniz:

1) size olan sunucudan o IP'ye bağlanabilirsiniz sağlayın:

$ ssh [email protected]

2) düğümün durumunu kontrol edin ve aynı zamanda aynı IP gösterir onaylayın:

$ nodetool durum

3) için komutunu çalıştırın IP (varsayılanı kullanmıyorsanız sadece bağlantı noktası belirtin) ile bağlanmak: Kat için

$ cqlsh xxx.xxx.xx.xx

+0

Merhaba, Yardımlarınız için teşekkürler, aslında ikinci noktanız sorunun nedenini bulmak için çok yardımcı oldu. Yazdırılan nodetool durumu, düğümün makinenin yerel ipini işaret etmediğini, daha sonra bir "ipconfig" komutuyla, makinenin Virtualbox Ethernet Adapter programını kullandığını gösterdi. Virtualbox sanal bağdaştırıcısını devre dışı bıraktıktan sonra, düğüm gerçek yerel ipi ve uzak bağlantı benim için çalıştı! tekrar teşekkürler ! – Obama

+0

Bunu duymak çok güzel :) – Kat

3

Alternatif çözüm.

  • kontrol çalıştırılıyorsa ps aux | grep cassandra
  • ile çalışan eğer çıkış komutları/bayrakların büyük blok, olacaktır: koşma eğer

    1. ssh sunucusuna [email protected]**.**.**.**
    2. Durdurma cassandra içine Ubuntu 16.04 ile çalıştı , ÖrneğinÖrnekte

      ubuntu 14018 4.6 70.1 2335692 712080 pts/2 Sl+ 04:15 0:11 java -Xloggc:./../logs/gc.log ........

      Not 14018

        takip ediyor
    3. düzenlemek cassandra.yaml dosyası (bu durumda 14.018 olarak) işlem kimliği kill <process_id> ile

    4. Dur olduğunu
    5. rpc_address: 0.0.0.0
    6. broadcast_rpc_address: **.**.**.** < - senin sunucusunun IP sınamak için
    7. Açık yerel makine & başka bir terminal cqlsh **.**.**.** aracılığıyla (sunucunuzun IP) bağlamak (cassandra kökünden içinden)
  • Yeniden cassandra ./bin/cassandra -f (0.0.0.0 olarak ayarlanamaz) .
  • ./bin/nodetool status adresim localhost IP'yi (127.0.0.1) bildirdi, ancak cqlsh uzaktan hala buna rağmen çalıştı.