【问题标题】:Cassandra 1.1.1 fails to drop columnfamilyCassandra 1.1.1 未能删除列族
【发布时间】: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 有同样的问题。我在单节点集群上

标签: java cassandra


【解决方案1】:

以下组合:

  • 更新到 cassandra 1.1.2(从 1.1.1)
  • 在所有节点上安装 NTP
  • 将文件系统升级到 ext4(从 ext3)

已解决此问题。

【讨论】:

    【解决方案2】:

    似乎编辑该文件“log4j-server.properties”并没有解决问题。

    我必须删除所有机器上的数据才能重新创建列族。这很烦人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 2012-05-18
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2023-03-19
      相关资源
      最近更新 更多