7

我遇到了一个问题“me.prettyprint.hector.api.exceptions.HUnavailableException: : 可能没有足够的副本来处理一致性级别。” 当我的 RF = 1 时,读取一致性级别 = 1 并且 6 节点环/集群中的一个节点已关闭。我所有的阅读都失败了这个例外。任何的想法?理想情况下,只有在已关闭节点中查找数据的读取才会失败,而所有其他读取都应该成功?

4

2 回答 2

4

可能有几种可能:

  • 您正在运行需要多个节点启动的多行查询(get_range、get_indexed_slices、multiget 或 cql 等效项)
  • 您的集群不平衡,down 节点拥有大部分环;一个糟糕的多直流配置也可能产生类似的东西
  • 您的集群一开始就处于不好的状态,有些节点看不到其他节点。确保 nodetool ring 在对集群中的每个节点运行时显示相同的输出

如果这些都不是原因,请仔细检查您是否使用 Hector 和 cqlsh 正确指定了一致性级别。

于 2012-09-06T01:33:06.117 回答
3

当我错误地配置我的复制设置时,我看到了类似的情况,特别是我有错误的数据中心命名为复制策略。仔细检查您的 DC 是什么(假设您使用的是 NetworkTopologyStrategy)。

如果您还不知道您的 DC 名称,请在其中一个节点上的 shell 中运行:

$ nodetool -h localhost ring
Address         DC          Rack        Status State   Load            Owns    Token                                       
                                                                               141784319550391000000000000000000000000     
172.26.233.135  Cassandra   rack1       Up     Normal  25.75 MB        16.67%  0                                           
172.26.233.136  Cassandra   rack1       Up     Normal  26.03 MB        16.67%  28356863910078200000000000000000000000      
172.26.233.137  Cassandra   rack1       Up     Normal  27.19 MB        16.67%  56713727820156400000000000000000000000      
172.26.233.138  Cassandra   rack1       Up     Normal  26.78 MB        16.67%  85070591730234600000000000000000000000      
172.26.233.139  Solr        rack1       Up     Normal  24.47 MB        16.67%  113427455640313000000000000000000000000     
172.26.233.140  Solr        rack1       Up     Normal  26.66 MB        16.67%  141784319550391000000000000000000000000 

您可以看到我们有两个 DC,Cassandra 和 Solr(这是一个 DSE 集群)。

在 cassandra-cli 中:

use Keyspace1;
describe;

CLI 将打印策略选项:

Keyspace: Catalog:
  Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy
  Durable Writes: true
    Options: [DC1:3]
...

我们有错位。Cassandra 正在寻找一个名为 DC1 的数据中心,因此出现了 UnavailableException。我们需要更新复制选项以匹配集群中的实际 DC。在 CLI 中,使用数据中心名称更新键空间的策略选项:

update keyspace Keyspace1 with strategy_options = {Cassandra:3,Solr:2};
于 2012-09-06T15:44:31.573 回答