2016-03-14 235 views
0

很抱歉,如果这是一个存在的问题,但任何现有的解决我的问题..卡桑德拉使用datastax卡桑德拉

我已经安装卡桑德拉单联接的读操作错误。我现在没有很大的应用程序,但我认为很快就会出现这种情况,并且我将需要越来越多的节点。

好吧,我将数据从流保存到Cassandra,进展顺利,但是suddently,当我试图读取数据,我开始收到此错误: “在一致性ONE没有足够的副本可供查询(需要1但只有0活着)”

我keyspace是使用复制因子= 1的简单策略构建的。我保存由名为“catchId”的字段分隔的数据,因此我的大多数查询都是这样的:“select * from data where catchId ='xxx'”。 catchId是分区键。

我正在使用cassandra-driver-core版本3.0.0-rc1。

问题是我现在没有那么多的数据了,我在想现在是否会更好地使用RDBMS,只有当我拥有更好的基础架构时才能迁移到Cassandra。

谢谢:)

+0

什么是您的基础架构 – phact

+0

它只是一台机器(即时测试本地):i5-2400 3.10Ghz,8GB RAM和500GB高清。 –

回答

0

看来,您的节点是无法当你试图让你读的(一般出现这个错误不止一个节点)作出回应。如果你没有太多的数据,这很奇怪,所以这可能是一个糟糕的设计选择。这可能源于几件事情,所以你必须做一些调查。

  • 研究你的日志!尤其是system.log
  • 您可以更改cassandra.yaml中的read_request_timeout_in_ms参数。虽然在生产中不是好主意,但它会告诉你,如果它只是暂时的问题(你的请求在一段时间后成功)还是更大的问题
  • 非常积极,你可以安装opscenter,你会给更多有价值的信息

你在做什么和写多少个请求?它可以压倒卡桑德拉(即使它是专门设计的)。我建议进行异步请求以避免问题。