2012-06-06 4 views
2

У меня была установка Кассандры на 1 узел и затоплена ее данными. Затем я сконфигурировал второй узел, его начальный токен, семя и т. Д. И запустил на нем Cassandra. Теперь, когда я запустил свой код Гектора на кластере с одним узлом, он дал мне все данные. Но когда я запускаю тот же код на кластере из двух узлов, я получаю меньше данных (меньшее количество столбцов и строк). Я не понимаю, что я делаю неправильно. Я даже попытался добавить строку хостов, используя CassandraHostConfigurator, но все же я не получаю все данные. Я также попытался запустить ремонт nodetool, но по-прежнему сталкиваются с тем же вопросомCassandra and Hector issue

Пожалуйста, помогите мне

ответ

1

При добавлении узлов в кластер, вы должны начать этот узел с auto_bootstrap: true в cassandra.yaml так, что другие узлы в кластере (в вашем случае единственный узел) будут передавать новый узел данных (в соответствии с токеном).

Редактировать Для Casssandra-1.0 года не вариант, так как бутстрапе в этом случае мы должны начать второй узел с новым маркером вычисленной он начнет потоковое data.once потоковое закончен бег nodetool move <new_token>. для получения дополнительной информации см. Adding nodes to cluster

Если это не сделано, второй узел не будет иметь данные, которые он должен удерживать в соответствии с токеном. И когда вы пытаетесь прочитать данные из Cassandra, он может искать данные о недавно добавленном узле в соответствии с токеном, но поскольку данных нет, вы не получаете правильный результат.

+0

Но нет возможности auto_bootstrap в Кассандре 1.1.0. Итак, где указать эту опцию? – user1439690

0
  • Пожалуйста, проверьте весь брандмауэр Iptables конфигурация это принять узел связывается с другим

после добавления узла в кольцо, используйте nodetool ring для просмотра примера НАГРУЗКИ данных моего кластера имеет 3 узла в результате будет похожи :

192.168.23.84 datacenter1 Rack1 Up Нормальный 37,52 GB 33,33%
192.168.23.85 datacenter1 Rack1 Up Нормальный 37,5 GB 33,33%
192.168.23.86 datacenter1 Rack1 Up Нормальный 37,5 GB 33,33%

, если это похоже, что, когда и использовать Гектор, используйте этот код, чтобы проверить запрос Гектор, к которому сервер:

MutationResult result = mutator.execute(); 
logger.info(" host:" + result.getHostUsed().getHost()); 

попробовать написать много время для повторной проверки целевого хоста содержит весь ваш хост.

я использовать этот CassandraHostConfigurator добавить много хоста к кластеру при использовании Hector пример:

CassandraHostConfigurator cassandraHostConfigurator = new CassandraHostConfigurator(
       "192.168.23.84:9160,192.168.23.85:9160,192.168.23.86:9160"); 
cluster = HFactory.getOrCreateCluster("testcluster", cassandraHostConfigurator); 
Смежные вопросы