2017-01-20 8 views
0

Я создал CentOS на GCE и установил dsc-cassandra 3.0. Затем я изменил rpc_address от localhost до internal ip или external ip в cassandra.yaml.
На виртуальной машине я начал cassandra и использовал cqlsh для успешного доступа к cassandra. Но я не мог использовать cqlsh internal_ip или cqlsh external_ip.
Кроме того, я включил порт tcp: 9042 для этого экземпляра.Как настроить Cassandra на GCE, тогда я могу получить к ней доступ из моего локального приложения Java, запущенного на Win7?

Но я все еще не мог получить доступ к Cassandra из своего локального приложения Java с помощью NoHostAvailableException (не могу подключиться).

Кстати, я сделал то же самое с моей локальной виртуальной машиной, работающей с VM VistualBox. Я мог бы получить к нему доступ.

Запуск sudo netstat -lntp | grep pid отображается:

tcp  0  0 127.0.0.1:33743   0.0.0.0:*    LISTEN  1207/java   
tcp  0  0 127.0.0.1:7000   0.0.0.0:*    LISTEN  1207/java   
tcp  0  0 127.0.0.1:7199   0.0.0.0:*    LISTEN  1207/java   
tcp6  0  0 127.0.0.1:9042   :::*     LISTEN  1207/java 

Адрес Ip ​​был еще 127.0.0.1. Я думаю, что это проблема.
Как настроить файл cassandra.yaml?

ответ

0

Я знаю, где я был неправ.

Я использовал sudo service cassandra restart для перезапуска cassandra после редактирования cassandra.yaml. Терминал показал:

Restarting cassandra (via systemctl): [ OK ] 

На самом деле, я думаю, что это действительно не перезапустило его. Затем я использовал nodetool stopdaemon, чтобы остановить кассандру, а затем запустить ее снова. Конфигурация cassandra.yaml сработала.

Полезные команды:

1. 
ps aux | grep cassandra 
sudo netstat -lntp | grep <cassandra_pid> 

Используя эти команды, чтобы проверить IP/порт службы Cassandra на удаленной VM. tcp 0 0 127.0.0.1:7000 0.0.0.0:* LISTEN 5928/java tcp 0 0 127.0.0.1:42682 0.0.0.0:* LISTEN 5928/java tcp 0 0 127.0.0.1:7199 0.0.0.0:* LISTEN 5928/java tcp6 0 0 10.138.0.2:9042 :::* LISTEN 5928/java

2. 
telnet <cassandra_ip> 9042 

Используя эту команду, чтобы проверить IP/порт службы Cassandra на локальной машине.