2013-12-13 10 views
5

OS: CentOS 6.4 (server)DataStax Devcenter non riesce a connettersi alla Cassandra remota del database

Ho installato con successo (yum install dsc20) del livello di database Cassandra in mio assistente e può connettersi ad esso utilizzando il CQL Shel (cqlsh). Ma ho bisogno di eseguire le query in remoto usando il software DevCenter di DataStax. Così l'ho installato (DevCenter) in una workstation separata. (CentOS 6.4 - desktop) e ho provato ad aggiungere una nuova connessione per connettersi al cassandra db.

Così ho dato l'IP del "CentOS 6.4 - server" (in cui il database di cassandra è in esecuzione) per l'host e la porta come 9160. Ma quando si verifica la connessione fallisce.

Ho anche provato a disattivare il firewall nel server, (/etc/init.d/iptables stop). Ma non ha avuto fortuna.

Sono sicuro che ciò potrebbe essere dovuto a qualche errore di configurazione che non riesco a capire. Sarò grato, se qualcuno mi può dare una soluzione per questo come stavo facendo ricerche per questo e non ho trovato risposte. Grazie mille in anticipo.

+0

Qual è l'opzione 'rpc_address' configurata su in cassandra.yaml? Se è in ascolto solo sull'host locale, i client esterni non saranno in grado di connettersi. –

+0

sì è stato configurato come 'localhost'. Ma ho provato a dare "0.0.0.0". Ma non ha avuto fortuna. Qualche idea? Grazie per la vostra risposta. – Tharanga

+0

dopo averlo modificato su 0.0.0.0 (ovvero ascoltare tutte le interfacce) hai configurato il firewall? –

risposta

4

DataStax DevCenter in fase di creazione sopra il driver DataStax Java ha lo stesso connectivity requirements as the driver. Vale a dire:

  1. start_native_transport: true
  2. rpc_address: IP o un nome host raggiungibile dal client
  3. macchine del cluster accettare connessioni sulla porta 9042 (l'opzione native_transport_port config)

Se rpc_address è impostato su IP privato o 0.0.0.0, DevCenter non saprà a quale nodo connettersi.

Se il cluster ha più nodi e questi utilizzano rpc_address: 0.0.0.0, anche se si configura DevCenter con gli IP di un paio di nodi, continueranno comunque a rilevare gli altri nodi nel cluster.

In cassandra.yaml c'è un commento/avvertimento sull'utilizzo rpc_address: 0.0.0.0:

Si noti che diversamente ListenAddress sopra, è consentito specificare 0.0.0.0 qui se si desidera ascoltare su tutte le interfacce, ma che si romperà client che si basano sul rilevamento automatico del nodo.

Nota: è possibile che in futuro DevCenter potrebbe essere in grado di ignorare/filtrare i nodi del cluster configurato con rpc_address: 0.0.0.0.

3

Nel cassandra.yaml, ho impostato

  1. listen_address: localhost
  2. rpc_address: 1.2.3.4
  3. broadcast_rpc_address: 1.2.3.4

Dopo aver fatto una

servizio sudo cassandra riavviare

DevCenter era in grado di connettersi correttamente.

Dopo questa modifica, cqlsh non partiva senza l'indirizzo:

cqlsh 1.2.3.4

È possibile impostare la variabile d'ambiente $ CQLSH_HOST = 1.2.3.4. Quindi digitare semplicemente cqlsh.

1

Prova questo .. Ha funzionato per me!

Eseguire il seguente comando sul computer in cui si dispone DevCenter installato

$> ssh -L 9042:localhost:9042 <username>@<ip-address-cassandra-db> -N 

Dopo l'esecuzione di questo comando, verrà richiesto la password

Ora nel tuo host DevCenter> contatto, fornire "127,0 .0.1 "e connessione di test. Bingo, vedi la magia ...

Problemi correlati