Cassandra 1.2:无法完成请求:一个或多个节点不可用

时间:2013-07-13 15:14:58

标签: amazon-ec2 cassandra

我在设置新的Cassandra集群时遇到了麻烦。我在EC2中建立了一个3节点集群(区域:eu-west-1b)。当我尝试将记录插入新表时,我收到此错误消息:

cqlsh:test> insert into mytest (id, value) values(1,100);
Unable to complete request: one or more nodes were unavailable.

我已确认3个节点已启动并正在运行:

nodetool status
UN  ***.***.***.***  68.1 KB    256     33.2%  bbf1c5e9-ac68-41a1-81a8-00c7877c4eac  rack1
UN  ***.***.***.***  81.95 KB   256     34.1%  e118e3a7-2486-4c08-8ba1-d337888ff59c  rack1
UN  ***.***.***.***   68.12 KB   256     32.7%  041cb88e-df21-4640-b7ac-7a87fd38dae6  rack1

我用来创建键空间和表的命令是:

create keyspace test with replication ={'class':'NetworkTopologyStrategy', 'eu-west-1b': 2};
use test;
create table mytest (id int primary key, value int);
insert into mytest (id, value) values(1,100);

每个节点都可以看到键空间 - 我使用了CQLSH并运行了descibe键空间并从每个节点获得了这个输出:

CREATE KEYSPACE test WITH replication = {
  'class': 'NetworkTopologyStrategy',
  'eu-west-1b': '2'
};

USE test;

CREATE TABLE mytest (
  id int PRIMARY KEY,
  value int
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'SnappyCompressor'};

2 个答案:

答案 0 :(得分:2)

我终于找到了问题 - 我已将endpoint_snitch设置为Ec2Snitch,但默认的Datastax设置在注释下面(我没有注意到)。我注释掉了DS snitch,在所有节点上重新启动了dse服务,并在每个节点上运行了nodetool修复,问题就消失了。

答案 1 :(得分:-1)

根据Mark的回复,首先检查你的cassandra集群是否在aws中。如果是,然后更改“cassandra.yaml”中的配置,只需将 endpoint_snitch更改为Ec2Snitch ,有一件事可能是你的数据中心实际上是ec2实例的“区域”,它应该像“ us-east','us-west'。在你的情况下,它应该只是'eu-west'。

根据datastax的说法 EC2Snitch¶

在Amazon EC2上使用EC2Snitch进行简单的群集部署,其中群集中的所有节点都在一个区域内。该区域被视为数据中心,可用区域被视为数据中心内的机架。例如,如果节点位于us-east-1a,则us-east是数据中心名称,1a是机架位置。由于使用了私有IP,因此该窃听不适用于多个区域。

定义键空间strategy_options时,请使用EC2区域名称(例如us-east)作为数据中心名称。

链接 - http://www.datastax.com/docs/1.0/cluster_architecture/replication        http://www.datastax.com/documentation/cql/3.1/cql/cql_using/update_ks_rf_t.html