繁体   English   中英

Cassandra依赖于任意命令

[英]Cassandra hangs on arbitrary commands

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

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

版本:

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

我的想法已经用完了。 任何提示将不胜感激。

更新:

经过一些随机调查,这里有更详细的描述。

如果我cassandra-cli到任何机器,并做“显示键空间”,它的工作原理。

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

如果我cqlsh到远程cassandra,并做一个描述键空间,它会挂起。 ctrl + c,重复相同的查询,它立即响应。

如果我cqlsh到本地cassandra,并做一个描述键空间,它的工作原理。

如果我cqlsh到本地cassandra,并从Keyspace限制x执行select *,它将返回一定数量的数据。 我能够以限制760返回数据,761将失败。

如果我所有的一致性,并选择相同,它会挂起。

如果我进行跟踪,不同的机器会返回数据,但有时source_elapsed为“null”

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

更新2

进一步播放引入了两个节点的失败引导失败,一个挂在引导程序上4天,最终失败,可能是由于滚动重启,另一个在2天后失败。 修复不起作用,并引入“Stream failed”错误,以及“Thread Thread [StorageServiceShutdownHook,5,main] java.lang.NullPointerException”中的“Exception”。 此外,执行修复后,开始获取“读取无效的帧大小为0.您是否在客户端使用tframedtransport?”,所以..

将hsha的rpc_server_type切换为同步。 所有问题都没了。 我们和hsha一起工作了好几个月。

如果有人也偶然发现: http//planetcassandra.org/blog/post/hsha-thrift-server-corruption-cassandra-2-0-2-5/

cassandra.yaml

hsha rpc_server_type hshasync

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM