Нужен скрипт для подключения cassandra с паролем и выполнения CQL с использованием python

#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']
  

Попробуйте начать с этого. У меня есть несколько других мыслей, но давайте уберем эти две очевидные настройки.