Невозможно подключиться к серверу Cassandra с удаленного компьютера - PullRequest
0 голосов
/ 02 мая 2018

Я развернул Cassandra на экземпляре Amazon Linux EC2 в общедоступной подсети по умолчанию и установил драйвер python. Затем я могу успешно запустить - https://github.com/datastax/python-driver/blob/master/example_core.py на этом экземпляре EC2. Работало нормально.

Теперь я создал еще один экземпляр EC2 в общедоступной подсети по умолчанию, установил в него драйвер python cassandra и попытался выполнить вышеупомянутый файл python, заменив 127.0.0.1 в строке 33 публичным IP-адресом первого EC2 экземпляр, в котором выполняется установка cassandra на основе одного узла, но происходит сбой со следующей ошибкой -

[ec2-user@ip-172-31-43-142 ~]$ python example.py
2018-05-02 09:50:23,061 [WARNING] cassandra.cluster: Cluster.__init__ called 
with contact_points specified, but no load_balancing_policy. In the next 
major version, this will raise an error; please specify a load-balancing 
policy. (contact_points = ['54.244.59.178'], lbp = None)
2018-05-02 09:50:23,064 [DEBUG] cassandra.cluster: Connecting to cluster, 
contact points: ['54.244.59.178']; protocol version: 4
2018-05-02 09:50:23,064 [DEBUG] cassandra.io.asyncorereactor: Validated loop                 
dispatch with cassandra.io.asyncorereactor._AsyncorePipeDispatcher
2018-05-02 09:50:23,064 [DEBUG] cassandra.pool: Host 54.244.59.178 is now 
marked up
2018-05-02 09:50:23,067 [DEBUG] cassandra.cluster: [control connection] 
Opening new connection to 54.244.59.178
2018-05-02 09:50:23,073 [WARNING] cassandra.cluster: [control connection] 
Error connecting to 54.244.59.178:
Traceback (most recent call last):
  File "cassandra/cluster.py", line 2798, in 
cassandra.cluster.ControlConnection._reconnect_internal
    return self._try_connect(host)
File "cassandra/cluster.py", line 2820, in 
cassandra.cluster.ControlConnection._try_connect
    connection = self._cluster.connection_factory(host.address, 
is_control_connection=True)
    File "cassandra/cluster.py", line 1205, in 
cassandra.cluster.Cluster.connection_factory
    return self.connection_class.factory(address, self.connect_timeout, 
*args, **kwargs)
  File "cassandra/connection.py", line 332, in 
cassandra.connection.Connection.factory
    conn = cls(host, *args, **kwargs)
  File "/usr/local/lib64/python2.7/site- 
packages/cassandra/io/asyncorereactor.py", line 344, in __init__
    self._connect_socket()
  File "cassandra/connection.py", line 371, in 
cassandra.connection.Connection._connect_socket
raise socket.error(sockerr.errno, "Tried connecting to %s. Last error: %s" % 
([a[4] for a in addresses], sockerr.strerror or sockerr))
error: [Errno 111] Tried connecting to [('54.244.59.178', 9042)]. Last 
error: 
Connection refused
2018-05-02 09:50:23,079 [ERROR] cassandra.cluster: Control connection failed 
to connect, shutting down Cluster:
Traceback (most recent call last):
  File "cassandra/cluster.py", line 1270, in 
 cassandra.cluster.Cluster.connect
    self.control_connection.connect()
  File "cassandra/cluster.py", line 2766, in 
cassandra.cluster.ControlConnection.connect
    self._set_new_connection(self._reconnect_internal())
  File "cassandra/cluster.py", line 2809, in 
cassandra.cluster.ControlConnection._reconnect_internal
    raise NoHostAvailable("Unable to connect to any servers", errors)
NoHostAvailable: ('Unable to connect to any servers', {'54.244.59.178': 
error(111, "Tried connecting to [('54.244.59.178', 9042)]. Last error: 
Connection refused")})
2018-05-02 09:50:23,082 [DEBUG] cassandra.cluster: Shutting down Cluster 
Scheduler
2018-05-02 09:50:23,082 [DEBUG] cassandra.cluster: Shutting down control 
connection
Traceback (most recent call last):
  File "example.py", line 73, in <module>
    main()
  File "example.py", line 22, in main
    session = cluster.connect()
  File "cassandra/cluster.py", line 1247, in 
cassandra.cluster.Cluster.connect
 File "cassandra/cluster.py", line 1283, in 
cassandra.cluster.Cluster.connect
  File "cassandra/cluster.py", line 1270, in 
cassandra.cluster.Cluster.connect
  File "cassandra/cluster.py", line 2766, in 
cassandra.cluster.ControlConnection.connect
  File "cassandra/cluster.py", line 2809, in 
cassandra.cluster.ControlConnection._reconnect_internal
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', 
{'54.244.59.178': error(111, "Tried connecting to [('54.244.59.178', 9042)]. 
Last error: Connection refused")})
[ec2-user@ip-172-31-43-142 ~]$

Можете ли вы дать подсказки, чтобы решить эту проблему?

Обратите внимание, что в моей группе безопасности открыты следующие входящие порты -

  • 9142
  • 9042
  • 9160
  • 7000-7001
  • 8182
  • 10000
  • 7199
  • 7437
  • 61621
  • 80

1 Ответ

0 голосов
/ 02 мая 2018

Проверьте ваш cassandra.yaml, это может быть проблема конфигурации. Настройте Cassandra на прослушивание соединений по IP-адресу локальной машины, а не по «localhost» Это необходимо для подключения к Cassandra с удаленных клиентов.

Проверьте переменные «listen_address» и «rpc_address» в cassandra.yaml, например:

listen_address: 54.244.59.178
rpc_address: 54.244.59.178

Используйте IP-адрес вашего устройства в настройках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...