Acessando remotamente o cassandra em execução no IP / porta de loopback local 127.0.0.1

1

Eu tenho usado o ccm há algum tempo e é uma ótima ferramenta para testar coisas administrativas. Agora, eu realmente quero testar dados de modelagem tentando acessar o ccm executando o cassandra usando o cliente pycassaShell baseado em Thrift a partir de hosts remotos (não localmente). Minha configuração é assim:

Vamos dizer, o IP privado desta máquina é: 10.11.12.13 (Apenas um exemplo)

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:67392708 errors:0 dropped:0 overruns:0 frame:0
      TX packets:67392708 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:7398829042 (6.8 GiB)  TX bytes:7398829042 (6.8 GiB)

lo:1  Link encap:Local Loopback  
      inet addr:127.0.0.2  Mask:255.255.255.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1

lo:2  Link encap:Local Loopback  
      inet addr:127.0.0.3  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1

lo:3  Link encap:Local Loopback  
      inet addr:127.0.0.4  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1

e 127.0.0.1 (nó1), 127.0.0.2 (nó2), 127.0.0.3 (nó3), 127.0.0.4 (nó4)

$ ccm status
  node1: UP  
  node3: UP
  node2: UP
  node4: UP

Como se conectar a qualquer instância de hosts não locais? Quando eu faço: pycassaShell --host 10.11.12.13 --port 9160, lança uma exceção,

thrift.transport.TTransport.TTransportException: não foi possível conectar-se a 10.11.12.13: 9160

Existe uma maneira de fazer isso funcionar?

Referências

Caso você não esteja familiarizado, o CCM, ou o Cassandra Cluster Manager , é um script para gerenciar instâncias de nós do Cassandra. p>

trecho

A script/library to create, launch and remove a Apache Cassandra cluster on localhost.

The goal of ccm and ccmlib is to make is easy to create, manage and destroy a small cluster on a local box. It is meant for testing of a Cassandra cluster.

    
por NullException 02.12.2013 / 23:01

1 resposta

1

Você pode estabelecer um túnel com o ssh para fazer parecer que o pycassaShell está se conectando a partir do servidor que está executando o Cassandra.

No host remoto, estabeleça um túnel SSH com isso -
ssh -N -L 9160:127.0.0.1:9160 10.11.12.13

Em seguida, no host remoto, execute pycassaShell --host 127.0.0.1 --port 9160

Alternativamente, você pode configurar o ccm para escutar em uma porta não-localhost.

    
por 03.12.2013 / 01:53

Tags