【问题标题】:Cassandra read operation error using datastax cassandraCassandra使用datastax cassandra读取操作错误
【发布时间】:2016-06-28 23:31:31
【问题描述】:

对不起,如果这是一个现有的问题,但任何现有的问题都解决了我的问题..

我已经安装了 Cassandra 单节点。我现在没有大型应用程序,但我认为很快就会出现这种情况,并且我需要越来越多的节点..

好吧,我正在将数据从流中保存到 Cassandra,一切顺利,但突然间,当我尝试读取数据时,我开始收到此错误: “没有足够的副本可用于一致性 ONE 的查询(需要 1 个但只有 0 个存活)”

我的键空间是使用最简单的方法构建的,replication_factor = 1。我保存的数据由一个名为“catchId”的字段分隔,所以我的大多数查询都类似于:“select * from data where catchId='xxx'”。 catchId 是一个分区键。

我使用的是 cassandra-driver-core 版本 3.0.0-rc1。

问题是我现在没有那么多数据,我正在考虑是否现在使用 RDBMS 会更好,并且只有在我拥有更好的基础架构时才迁移到 Cassandra。

谢谢:)

【问题讨论】:

  • 你的基础设施是什么
  • 只有一台机器(我在本地测试):i5-2400 3.10Ghz,8GB 内存和 500gb HD。

标签: cassandra datastax nosql


【解决方案1】:

当您尝试读取时,您的节点似乎无法响应(通常此错误出现在多个节点上)。如果你没有大量的数据,那就很奇怪了,所以这可能是一个糟糕的设计选择。这可能源于几件事,因此您必须进行一些调查。

  • 研究你的日志!特别是 system.log
  • 您可以在 cassandra.yaml 中更改您的 read_request_timeout_in_ms 参数。虽然这在生产中不是一个好主意,但它会告诉你这是暂时的问题(你的请求在一段时间后成功)还是更大的问题
  • 在执行请求时研究 CPU 和内存行为
  • 如果你很有动力,你可以安装 opscenter,它会给你更多有价值的信息

您正在执行多少次写入请求?它可以压倒 cassandra(即使它是为之设计的)。我建议发出异步请求以避免出现问题。

【讨论】:

    猜你喜欢
    • 2016-04-20
    • 2015-01-04
    • 1970-01-01
    • 2018-03-01
    • 2017-10-07
    • 2015-01-25
    • 1970-01-01
    • 2018-01-29
    • 2016-01-19
    相关资源
    最近更新 更多