2016-03-04 2 views
2

Я новичок в Cassandra, и я пытаюсь создать простой кластер из двух узлов на двух тестовых экземплярах ec2 ubuntu. но репликация не работает, nodetool ring не показывает оба экземпляра. Что я могу делать неправильно? Я использую версию cassandra 2.0.11.Настройка 2 узла (экземпляры ec2 ubuntu) Cassandra cluster

вот что мой конфиг как на обеих машинах:

listen_address: <private_ip> 
rpc_address: <private_ip> 
broadcast_address: <public_ip> 
seeds: <private_ip_of_other_machine> 
endpoint_snitch: Ec2Snitch 

Я настроил группу безопасности EC2, чтобы разрешить весь трафик на всех портах между этими экземплярами. Что я здесь делаю неправильно? При необходимости я могу предоставить журналы cassandra. Спасибо.

EDIT: ошибка я получаю в настоящее время заключается в следующем:

java.lang.RuntimeException: Unable to gossip with any seeds 
    at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1340) 
    at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:543) 
    at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:766) 
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:693) 
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:585) 
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300) 
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:516) 
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:625) 
ERROR 15:08:03 Exception encountered during startup 
java.lang.RuntimeException: Unable to gossip with any seeds 
     at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1340) ~[apache-cassandra-2.2.5.jar:2.2.5] 
     at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:543) ~[apache-cassandra-2.2.5.jar:2.2.5] 
     at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:766) ~[apache-cassandra-2.2.5.jar:2.2.5] 
     at org.apache.cassandra.service.StorageService.initServer(StorageService.java:693) ~[apache-cassandra-2.2.5.jar:2.2.5] 
     at org.apache.cassandra.service.StorageService.initServer(StorageService.java:585) ~[apache-cassandra-2.2.5.jar:2.2.5] 
     at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300) [apache-cassandra-2.2.5.jar:2.2.5] 
     at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:516) [apache-cassandra-2.2.5.jar:2.2.5] 
     at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:625) [apache-cassandra-2.2.5.jar:2.2.5] 
WARN 15:08:03 No local state or state is in silent shutdown, not announcing shutdown 

ответ

1

1-ая вещь, которую я вижу, что ваши семена: список неправильно. Оба узла должны иметь одинаковые семена: список. Для простой тестовой установки с двумя узлами вам нужно только одно семя (выберите один из них). Если узлы находятся в одном и том же AZ, вы можете использовать частный IP-адрес.

+0

Итак, какова должна быть ценность семян в обеих машинах? В настоящее время он зависает в режиме «Handshaking version with/» перед тем, как дать исключение «Невозможно сплетничать с любыми семенами». – anshulv

+0

вы можете использовать частный ip для node1. Список семян: список должен быть точно таким же на обоих узлах в файле cassandra.yaml. Запустите семенной узел 1-й и 2 минуты позже запустите другой узел. Если они все равно не будут говорить, остановите cassandra на обоих узлах и удалите содержимое файлов commitlog и данных. Это приведет к эффективному сбросу базы данных. – LHWizard

+0

Хорошо спасибо. Я использовал двоичный файл с сайта datastax, я попробовал с двоичным файлом с сайта cassandra.apache и более новой версии, и теперь он работает. Я использую частный IP для значения семян в node1 и private IP узла1 в семенах для узла2. еще раз спасибо. – anshulv

Смежные вопросы