python-3.x - 无法从 Python 代码连接到 Cassandra

标签 python-3.x linux cassandra cassandra-3.0 datastax-python-driver

我无法从 python 连接 cassandra,出现以下错误

Traceback (most recent call last):
  File "/app/script_max_device_count.py", line 232, in <module>
    max_device_count.get_max_device_count_per_partner(partners_dict)
  File "/app/script_max_device_count.py", line 199, in get_max_device_count_per_partner
    session = self.establish_cassandra_connection()
  File "/app/script_max_device_count.py", line 137, in establish_cassandra_connection
    session = Cluster([cassandra_host], port=cassandra_port, auth_provider=auth_provider).connect()
  File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 1358, in connect
    self.control_connection.connect()
  File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 2896, in connect
    self._set_new_connection(self._reconnect_internal())
  File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 2939, in _reconnect_internal
    raise NoHostAvailable("Unable to connect to any servers", errors)
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'1XX.XX.X.X:9042': ValueError("invalid literal for int() with base 10: '3-E000'")})

使用的版本

python = 3.7.4
cassandra-driver==3.18.0

Linux环境
Cassandra 安装是

[cqlsh 5.0.1 | Cassandra 3.11.3-E000 | CQL spec 3.4.4 | Native protocol v4]

示例 cassandra 代码连接

``
def establish_cassandra_connection(self):
        db_config = DatabaseConfig()
        cassandra_host = db_config.get_cassandra_host()
        cassandra_port = int(db_config.get_cassandra_port())
        cassandra_username = db_config.get_cassandra_username()
        cassandra_password = db_config.get_cassandra_password()
        auth_provider = PlainTextAuthProvider(username=cassandra_username, password=cassandra_password)
        # connection.setup can have multiple host can be added as a list.
        session = Cluster([cassandra_host], port=cassandra_port, auth_provider=auth_provider).connect()
        logger.info("Cassandra Connection Established.")
        return session 
``

最佳答案

我能够解决此问题,这是由于 cassandra 驱动程序问题造成的 cassandra-driver==3.18.0 无法与 linix 版本的“Cassandra 3.11.3-E000”一起使用

在 docker 镜像中更改了 assandra-driver==3.14.0 的版本,效果很好

关于python-3.x - 无法从 Python 代码连接到 Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59386450/

相关文章:

linux - htop 显示的常驻内存使用量多于机器的内存使用量

scala - 在 Apache Spark 中,如何按两个共享值对 RDD 的所有行进行分组?

python-3.x - 将文档添加到 gensim 模型

python - 导入 basemap 时出现ImportError

python - While循环语法错误

css - 使用 SED 和 RegEx 将下划线放回数百个 CSS 文件的链接中

python - Linux下如何用Python创建master进程?

java - 在 Cassandra 中使用对象映射器批量插入

python - cqlsh::ImportError:无法导入名称 cql_keywords_reserved

python - 如何删除从pandas中的excel读取的重复列