Cassandra:在 session.execute() 期间“无法完成对任何主机的操作”

Posted

技术标签:

【中文标题】Cassandra:在 session.execute() 期间“无法完成对任何主机的操作”【英文标题】:Cassandra: "Unable to complete the operation against any hosts" during session.execute() 【发布时间】:2016-07-11 12:02:18 【问题描述】:

Cassandra 版本:1.2.2 Thrift API 版本:19.35.0 CQL 支持的版本:2.0.0,3.0.1(默认:3.0.1) python 3.4 的 cassandra 驱动程序 使用 sudo 运行 cassandra/bin/cassandra

代码示例

from cassandra.cluster import Cluster
cluster = Cluster()
session = cluster.connect()    # 1
session.execute("use test")    # 2
cluster.shutdown()

#2 的错误消息: session.execute("使用测试") 文件“cassandra/cluster.py”,第 1581 行,在 cassandra.cluster.Session.execute cassandra.cluster.ResponseFuture.result 中的文件“cassandra/cluster.py”,第 3145 行 cassandra.cluster.NoHostAvailable: ('无法完成对任何主机的操作', )

困惑: 由于代码示例中的#1 没有错误,因此连接似乎很好。但是我不太明白为什么查询执行失败。

【问题讨论】:

哪个1.2版本? 1.2.2 我已编辑我的帖子以包含信息。 keyspace test 是否包含任何数据? 是的。它有一堆包含大量数据的列族(表)。 Keyspace 是使用 cassandra-cli 创建的,我使用 pycassa 填充数据库。 @yang5 找到解决方案了吗? 【参考方案1】:

尝试为您的集群指定联系点,例如:

from cassandra.cluster import Cluster
cluster = Cluster(['192.168.1.1', '192.168.1.2'])
session = cluster.connect()

更多详情请关注datastax documentation

【讨论】:

它是一个本地节点,默认情况下,联系点设置为 127.0.0.1。

以上是关于Cassandra:在 session.execute() 期间“无法完成对任何主机的操作”的主要内容,如果未能解决你的问题,请参考以下文章

cassandra在pom.xml里面怎么设置library

我们如何在 Cassandra 中进行空间查询? Cassandra 是不是有任何 GIS 扩展?

Cassandra基本介绍 - Cassandra概述

在Cassandra中加载cassandra.yaml之外的其他配置文件

cassandra.bat -f - 在Windows 8.1专业版中启动cassandra的问题

cassandra启动失败