【发布时间】:2012-07-12 23:50:16
【问题描述】:
csuser@lovelyserver01:~$ cqlsh --cql3 lovelyserver01
Connected to Lovely Cluster at lovelyserver01:9160.
[cqlsh 2.2.0 | Cassandra 1.1.1 | CQL spec 3.0.0 | Thrift protocol 19.32.0]
Use HELP for help.
cqlsh> CREATE KEYSPACE bigdata WITH strategy_class = 'SimpleStrategy' AND strategy_options:replication_factor=3;
cqlsh> USE bigdata;
cqlsh:bigdata> CREATE COLUMNFAMILY results (client_id int, hierarchy_id int, units int, measures int, PRIMARY KEY (client_id, hierarchy_id));
插入几行,从 5 到 5000 行 - 没什么疯狂的。 然后我意识到我需要调整列族布局并重新插入所有数据,所以我:
cqlsh:bigdata> DROP COLUMNFAMILY results;
这没有任何作用,没有错误,列族仍然存在,我仍然可以从该列族中选择数据。我又做了几次,然后它似乎工作了。
然后,当我尝试重新创建列族时,每次我得到“TSocket 读取 0 字节”并且 cqlsh 会话变得无用。如果我删除所有节点上的 cassandra 数据目录,那么我可以重新创建密钥空间并重新启动。自然而然地,这让开发变得相当缓慢。
我已经在一个由 5 台旧笔记本电脑和 10 个 AWS EC2 实例组成的集群上进行了尝试。
每个节点的初始令牌是前一个节点的两倍。每个节点的种子被设置为第一个节点。 Commitlog 在同一设备上。我正在使用主机名作为 listen_address 和 rpc_address。
有人知道问题出在哪里吗?
【问题讨论】:
-
编辑 cassandra/conf/log4j-server.properties 并将 log4j.appender.R.File 设置为它可以实际访问的东西可能已经解决了这个问题。 (进一步测试)
-
所以,这绝对没有解决问题。我现在发现的是,CF 有时似乎会下降,但是当我重新创建它时,cassandra system.log 会在 曾经 位于 CF 中的字段上报告 MarshalException。 (但不在新的创建列族命令中)和“TSocket 读取 0 字节”的 cqlsh 错误
-
可能是这个,我用的是 1.1.1 issues.apache.org/jira/browse/CASSANDRA-4307
-
与 1.1.2 有同样的问题。我在单节点集群上