Apache Cassandra 3.7 CQLSH '无法连接到任何服务器'

15

Apache Cassandra版本3.7在Ubuntu服务器16.04上运行良好,Apache Cassandra的所有部分启动都没有问题,但是当我尝试使用cqlsh连接时出现问题:

$ CQLSH (我的IP地址) 9160

然后它显示:

连接错误:('无法连接到任何服务器',{'10.0.0.13':TypeError('ref()不接受关键字参数',)})

我看到有一个bug:https://issues.apache.org/jira/browse/CASSANDRA-11850,但这是针对cqlsh --version版本为5.0.1的情况。而我的Cassandra版本为3.5(也发生在3.0.6版本)。

有人在我的Apache Cassandra请求中进行了评论:https://issues.apache.org/jira/browse/CASSANDRA-12402 ,并指出:

使用工作原理中所述的解决方法: 如果您安装了最新版的cassandra-driver,则可以通过将环境变量CQLSH_NO_BUNDLED设置为任何非空字符串来禁用嵌入式驱动程序。例如:export CQLSH_NO_BUNDLED=true。

问题如下:

如何禁用最新版的cassandra-driver?它在哪个目录中?文件名是什么?如果我禁用了它,我还能使用CQLSH连接吗?除了直接在服务器上使用CQLSH之外,您们使用了哪些工具来连接Apache Cassandra以运行命令等操作?

2个回答

32

如票据所述 - 定义环境变量CQLSH_NO_BUNDLED并将其导出。

export CQLSH_NO_BUNDLED=true

这将告诉 cqlsh(一个Python程序)使用外部的Cassandra Python驱动程序,而不是分发包中捆绑的驱动程序。 捆绑的Cassandra驱动程序位于/opt/datastax-ddc-3.7.0/bin,文件名为cassandra-driver-internal-only-3.0.0-6af642d.zip

然后运行位于/opt/datastax-ddc-3.7.0/bin中的cqlsh

./cqlsh

如果尚未安装Cassandra Python驱动程序,则可能需要使用以下命令进行安装:

pip install cassandra-driver 

注意 - 文件夹名称适用于Datastax Cassandra构建。


1
谢谢,不过我不得不使用“sudo pip install cassandra-driver”。我把这个放在这里是因为它在收到权限错误消息之前超时了。 - Rdesmond
安装最新的Cassandra驱动程序后,我仍然遇到另一个错误:Traceback (most recent call last): File "/cassandra/bin/cqlsh", line 109, in <module> from cassandra.cluster import Cluster, PagedResult ImportError: 无法导入名称PagedResult有任何想法吗? - Patrick
1
@Patrick,这条消息与 cassandra-driver 版本有关。请尝试执行以下命令:pip install cassandra-driver==2.7.2 - pbo

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接