Cassandra 卡桑德拉挂起任意命令

Cassandra 卡桑德拉挂起任意命令,cassandra,cql,phpcassa,Cassandra,Cql,Phpcassa,我们正在AWS上托管Cassandra 2.0.2集群。我们最近开始通过引导新节点和停用旧节点,从普通驱动器升级到SSD驱动器。除了两个永远挂在停用状态的节点外,它进行得相当顺利。现在,在新的6个节点运行后,我们注意到使用phpcassa的一些旧工具停止工作。安全组没有任何变化,所有端口TCP/UDP都是开放的,telnet可以通过9160连接,cqlsh可以“使用”群集,选择数据,但是,“描述群集”失败,在cli中,“显示密钥空间”也失败,我的意思是决不退出返回提示符,也不返回任何结果。查询可

我们正在AWS上托管Cassandra 2.0.2集群。我们最近开始通过引导新节点和停用旧节点,从普通驱动器升级到SSD驱动器。除了两个永远挂在停用状态的节点外,它进行得相当顺利。现在,在新的6个节点运行后,我们注意到使用phpcassa的一些旧工具停止工作。安全组没有任何变化,所有端口TCP/UDP都是开放的,telnet可以通过9160连接,cqlsh可以“使用”群集,选择数据,但是,“描述群集”失败,在cli中,“显示密钥空间”也失败,我的意思是决不退出返回提示符,也不返回任何结果。查询可以从新节点完美地工作,但即使是等待退役的旧节点也无法执行查询。生产系统也使用phpcassa,执行正常的数据请求-工作正常

所有cassandras都有相同的配置、相同的版本、相同的安装包。由于种子节点更改,最近重新启动了所有节点

版本:

已连接到at.compute-1.amazonaws.com:9160。 [cqlsh 4.1.0 | Cassandra 2.0.2 | CQL规范3.1.1 |节约协议19.38.0]

我已经没有主意了。如有任何提示,将不胜感激

更新: 经过一点随机调查,这里有一点更详细的描述

如果我将cassandra cli安装到任何机器上,并显示键空间,它就会工作

如果我将cassandra cli连接到远程计算机,并显示键空间,它将无限期挂起

如果我向远程cassandra发送cqlsh,并执行描述键空间的操作,它将挂起。ctrl+c,重复相同的查询,它会立即响应

如果我向本地cassandra发送cqlsh,并执行描述键空间的操作,它就会工作

如果我将cqlsh发送到本地cassandra,并从键空间限制x执行select*操作,它将返回达到某个限制的数据。如果我能够返回限制为760的数据,761将失败

如果我执行一致性all,并选择相同的,它将挂起

如果我进行跟踪,不同的机器会返回数据,尽管有时source_为null

不要忘记,查询集群的应用程序有时会在多次尝试后得到结果

更新2 进一步的播放引入了两个节点的引导失败,一个在引导上挂起4天,最终失败,可能是由于滚动重新启动,另一个在2天后完全失败。修复无法运行,并引入流失败错误,以及线程[StorageServiceShutdownHook,5,main]java.lang.NullPointerException中的异常。此外,在执行修复后,开始读取无效的帧大小0。您是否在客户端使用tframedtransport?因此

解决方案 将rpc_服务器_类型从hsha切换到同步。所有的问题都解决了。我们与hsha合作数月,没有任何问题

如果有人在这里也绊倒了: 在cassandra.yaml中:


将rpc_服务器_类型从hsha切换到同步。

您是否尝试过在cqlsh中打开“跟踪”?嗨,Patricia,是的,我发布的更新基于“跟踪”输出。