0

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

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'};
4

2 回答 2

2

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

于 2013-07-14T19:17:50.383 回答
-1

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

根据 datastax 所说,EC2Snitch¶

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

在定义您的 keyspace 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

于 2014-04-16T07:58:13.793 回答