#python #cassandra #cql #cqlsh
#python #cassandra #cql #cqlsh
Вопрос:
Мне нужен скрипт, для которого мне нужно подключить узлы CassDb с паролем, используя скрипт python
Я попробовал приведенный ниже скрипт
from cassandra.auth import PlainTextAuthProvider
from cassandra.cluster import Cluster
ap = PlainTextAuthProvider(username='##',password='##')
cass_contact_points=['cassdb01.p01.eng.sjc01.com', 'cassdb02.p01.eng.sjc01.com']
cluster = Cluster(cass_contact_points,auth_provider=ap,port=50126)
session = cluster.connect('##')
Я получаю следующую ошибку:
File "C:python35libsite-packagescassandracluster.py", line 2792, in _reconnect_internal
raise NoHostAvailable("Unable to connect to any servers", errors)cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'10.44.67.92': OperationTimedOut('errors=None, last_host=None'), '10.44.67.91': OperationTimedOut('errors=None, last_host=None')})
Комментарии:
1. Можете ли вы опубликовать то, что вы пробовали до сих пор?
Ответ №1:
Я вижу две потенциальные проблемы.
Во-первых, если вы не находитесь в сценарии обновления или у вас не было прошлых проблем с версиями протокола, я бы не указывал это. Драйвер должен согласовать это значение. Установка его в 2
приведет к сбою, например, с Cassandra 3.x.
Во-вторых, я не думаю, что драйвер может правильно анализировать порты с конечных точек.
node_ips = ['cassdb01.p01.eng.sjc01.com:50126', 'cassdb02.p01.eng.sjc01.com:50126']
Когда я передаю порт вместе со своими конечными точками, я получаю аналогичный сбой. Итак, я бы попробовал изменить эту строку на эту:
node_ips = ['cassdb01.p01.eng.sjc01.com', 'cassdb02.p01.eng.sjc01.com']
Попробуйте начать с этого. У меня есть несколько других мыслей, но давайте уберем эти две очевидные настройки.