Ошибка NoHostAvailable в консоли cqlsh

Позже мне удалось избавиться от этой ошибки, но я не уверен, что сделал правильно. 1 )

CREATE KEYSPACE myKeySpace WITH replication = 
  {'class': 'NetworkTopologyStrategy', 'dc1': '1', 'dc2': '2'}
  AND durable_writes = true;

Выполните создание таблицы и выберите таблицу после этого. Это выдает ошибку «NoHostAvailable:» в консоли.

2) Если я изменю оператор создания на приведенный ниже, запрос выбора будет работать.

CREATE KEYSPACE myKeySpace WITH replication = 
  {'class': 'NetworkTopologyStrategy', 'datacenter1': '1', 'dc2': '2'}
  AND durable_writes = true; 

Если у меня есть datacenter1 по умолчанию, он работает. Я не могу понять, почему он работает только тогда, когда я даю datacenter1. Пожалуйста помоги.


person jAvA    schedule 26.01.2017    source источник


Ответы (5)


Какие центры обработки данных вы видите при выполнении nodetool status?

Центры обработки данных, указанные вами в качестве коэффициента репликации (RF) для вашего пространства ключей, должны быть предопределены либо в ваших файлах cassandra-rackdc.properties, либо в файлах cassandra-topology.properties (в зависимости от настроенного вами Snitch).

person Aaron    schedule 26.01.2017
comment
я не указал центр обработки данных при его создании, поэтому он мог использовать значение по умолчанию. Спасибо за помощь, теперь я могу понять, что мне нужно делать :) - person jAvA; 26.01.2017
comment
Эта проблема связана с последними сборками cassandra и более старыми сценариями создания. - person ininprsr; 14.08.2018

Я столкнулся с той же проблемой, когда пытался получить доступ к таблице, созданной в пространстве ключей, со стратегией репликации NetworkTopologyStrategy.

Причина, которую я обнаружил позже, связана с недоступностью реплик, потому что я использую их локально.

Если я изменю стратегию репликации пространства ключей на SimpleStrategy и replication_factor на 1, ошибка исчезнет.

Надеюсь это поможет.

person prince2020    schedule 22.10.2019

Вы можете указать только центр обработки данных, который присутствует/настроен в вашем кластере cassandra.

Запустите статус nodetool, который предоставит вам сведения о кластере, такие как имена центров обработки данных, названия стоек и т. д.

Использовали имена центров обработки данных отсюда при создании пространств ключей с репликацией класса NetworkTopologyStrategy.

person Pankaj Gupta    schedule 26.10.2019

На первом этапе вы можете попробовать:

'class':'SimpleStrategy'

чтобы просмотреть свой код, исключите класс стратегии!

После этого вы работаете над классом стратегии, если не нашли ни одной ошибки.

person Abolfazl Zohoorian    schedule 19.04.2020

Сначала вы должны проверить определенное имя центра обработки данных в файле свойств «cassandra-rackdc.properties» (последняя версия Cassandra, использующая этот файл свойств) или «cassandra-topology.properties» на основе определенного имени центра обработки данных, которое вы должны использовать для этого имени центра обработки данных. при создании пространства ключей. вы можете проверить состояние nodetool перед созданием пространства ключей, где вы можете увидеть имя центра обработки данных по умолчанию.

person LetsNoSQL    schedule 20.04.2020