Как подключить Cassandra из кластера gcloud, используя python - PullRequest
0 голосов
/ 15 января 2020

Мы пытаемся подключить кластер, используя скрипт bash, используя блокнот Jupyter:

!gcloud compute --project "project_name" ssh --zone "us-central1-a" "cassandra-abc-m"

После этого мы пытаемся подключиться, используя:

import cql
con= cql.connect(host="127.0.0.1",port=9160,keyspace="testKS")

cur=con.cursor()
result=cur.execute("select * from TestCF")

Как соединить оба? Пожалуйста, помогите мне за это.

1 Ответ

0 голосов
/ 16 января 2020

Насколько я понимаю, вы используете SSH для экземпляра Google Compute (GCP) (на котором запущена Cassandra), а затем пытаетесь запустить сценарий Python для подключения к локальному узлу. Я вижу две проблемы в вашей cql.connect строке.

Во-первых, Cassandra не использует порт 9160 для CQL. CQL использует порт 9042. Я считаю, что этот момент настолько смущает людей, что я рекомендую вообще не устанавливать port= . Драйвер будет использовать значение по умолчанию, которое должно работать.

Во-вторых, если вы развернули Cassandra в экземпляре GCP, то вы, вероятно, изменили listen_address и rpc_address. Это означает, что Кассандра не может связываться с 127.0.0.1 . Вам нужно использовать значение, определенное в свойстве rpc_address (или broadcast_rpc_address) yaml.

$ grep rpc_address cassandra.yaml
rpc_address: 10.19.17.5

В моем случае мне нужно указать 10.19.17.5, если я хочу подключиться локально или удаленно .

tl; dr;

  1. Не указывайте порт.
  2. Подключитесь к внешнему IP-адресу, как 127.0 .0.1 никогда не будет работать.
...