我的Cassandra (3.0.2)复制集中有3个节点。我的一致性水平是“一”。开始时,我所有的键空间的复制因子都等于1。我通过改变表来改变它,并在所有节点上运行“nodetool repair”。现在,当我试图选择一些数据(不是在每个键空间上)时,我得到类似这样的结果(select * from keyspace.table):
回溯(最近调用最后):文件“/usr/bin/cqlsh.py”,第 1258 行,perform_simple_statement 结果 = future.result() 文件“cassandra/cluster.py”,第 3781 行,在 cassandra.cluster.ResponseFuture.result (cassandra/cluster.c:73073) 引发self._final_exception 读取失败:来自服务器的错误:代码=1300 [副本无法执行读取] 消息=“操作失败 - 收到 0 个响应和 1 个失败” 信息={“失败”:1,“received_responses”: 0, 'required_responses': 1, '一致性': 'ONE'}
在“/var/log/cassandra/system.log”中,我得到:
另外,我得到:
DEBUG[SharedPool-Worker-1] 2017-04-07 13:20:30,002ReadCallback.java:126-超时;收到0/1的回复
我检查了端口9042和7000上的节点之间是否存在连接。我更改了“/etc/cassandra/cassandra.yml”中的选项,如“read_request_timeout_in_ms”、“range_requeste_timeoout_in_ns”、“write_request _timeout_in_s”或“truncate_request_temeout_in _ms”。我更改了文件“~/.cassandra/cqlshrc”和选项“client_timeout=3600”。另外,当我这样做时,例如“从keyspace.table中选择*,其中column1='value',column2=value”,我得到:
ReadTimeout:来自服务器的错误:code = 1200[协调器节点等待副本节点响应超时] message= "操作超时-仅收到0个响应。"info={'received_responses': 0,' required_responses': 1,' consistency': 'ONE'}
有什么想法吗?
固定!我将卡桑德拉版本从3.0.2更改为3.0.9,问题解决了。
Markošvaljek,是的,我将复制因子从1更改为3(因为我的复制中有3个节点)。你是对的;你改变了密钥空间的复制因子,这就是我所做的。这里有我的密钥空间的描述,通常我会在这里遇到一些错误(当然,在其他密钥空间中也会发生这种情况):
soi@cqlsh> desc keyspace engine;
CREATE KEYSPACE engine WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'} AND durable_writes = true;
CREATE TABLE engine.messages (
persistence_id text,
partition_nr bigint,
sequence_nr bigint,
timestamp timeuuid,
timebucket text,
message blob,
tag1 text,
tag2 text,
tag3 text,
used boolean static,
PRIMARY KEY ((persistence_id, partition_nr), sequence_nr, timestamp, timebucket)
) WITH CLUSTERING ORDER BY (sequence_nr ASC, timestamp ASC, timebucket ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'bucket_high': '1.5', 'bucket_low': '0.5', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'enabled': 'true', 'max_threshold': '32', 'min_sstable_size': '50', 'min_threshold': '4', 'tombstone_compaction_interval': '86400', 'tombstone_threshold': '0.2', 'unchecked_tombstone_compaction': 'false'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
CREATE MATERIALIZED VIEW engine.eventsbytag1 AS
SELECT tag1, timebucket, timestamp, persistence_id, partition_nr, sequence_nr, message
FROM engine.messages
WHERE persistence_id IS NOT NULL AND partition_nr IS NOT NULL AND sequence_nr IS NOT NULL AND tag1 IS NOT NULL AND timestamp IS NOT NULL AND timebucket IS NOT NULL
PRIMARY KEY ((tag1, timebucket), timestamp, persistence_id, partition_nr, sequence_nr)
WITH CLUSTERING ORDER BY (timestamp ASC, persistence_id ASC, partition_nr ASC, sequence_nr ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
CREATE TABLE engine.config (
property text PRIMARY KEY,
value text
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
CREATE TABLE engine.metadata (
persistence_id text PRIMARY KEY,
deleted_to bigint,
properties map<text, text>
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
通常我得到代码错误号1200或1300,如您在第一篇文章中看到的那样。这里有我的“节点工具状态”:
ubuntu@cassandra-db1:~$ nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 192.168.1.13 3.94 MB 256 ? 8ebcc3fe-9869-44c5-b7a5-e4f0f5a0beb1 rack1
UN 192.168.1.14 4.26 MB 256 ? 977831cb-98fe-4170-ab15-2b4447559003 rack1
UN 192.168.1.15 4.94 MB 256 ? 7515a967-cbdc-4d89-989b-c0a2f124173f rack1
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
我不认为其他进程可以操纵磁盘上的数据。我要补充的是,我有类似的复制,我有更多的数据,我没有这样的问题。
这或多或少是一个评论,但既然有这么多话要说,它就不适合评论。
如果能说出您更改了值的复制因子,那将是非常好的。我只是假设它是3,因为它相当标准。然后,由于您只有3人的集群,有时会将RF设置为2。您还提到您更新了表上的复制因子。据我所知,复制因子是在密钥空间级别设置的。
如果您发布了发生错误的密钥空间的描述,这将非常有帮助。
考虑到select*from某物
在集群中可能会变得非常密集,特别是如果您有大量数据的话。如果你在cqlsh中做这个查询,你可能会得到10000,然后你只提到cqlsh,没有应用程序代码,所以我只是注意到这一点。
请您提供<code>nodetool状态</code>,以确保您实际上没有在某些节点关闭的情况下运行查询。因为第一个错误看起来像这样。
到您发布堆栈跟踪的第二个错误时,它看起来就像您在磁盘上缺少一些稳定?是否有可能其他过程以某种方式操纵了稳定器?
你还改变了cassandra.yaml的很多属性,基本上你将预期响应时间减少了近50%,我想难怪节点没有时间响应……计算整个表通常需要3.6秒以上。
为什么这些值被改变的原因根本就不存在。
Cassandra修复无法在节点1上运行,出现以下错误。我之前错误地并行启动了多个修复会话。我发现有一个错误https://issues.apache.org/jira/browse/CASSANDRA-11824已经解决了同样的情况。但我已经在使用cassandra 3.9,请确认运行nodetool scrub是否是唯一的解决方法?在运行scrub之前,我们需要记住什么注意事项,因为我需要直接
我正在使用Cassandra作为我的一个应用程序。我想使用Cassandra通过cql提供的Prepared语句。如果我准备了一个查询,这是否在所有节点中都准备好了?。 任何帮助是值得赞赏的。
在你否决之前,我想声明,我看了所有类似的问题,但我仍然得到可怕的“主键列不能被限制”错误。 下面是我的表结构: 谢谢,德尼兹
我们有3个节点cassandra集群,我们添加了一个节点并停止了集群中的另一个节点。因为我们认为一切都很好,但我们开始看到提示表正在增长。 我们发现我们犯了一个错误,并从集群中删除节点,但仍然当我们运行nodetool八卦信息时,它会显示删除节点,但它的节点没有显示在状态命令中。 问题是什么,我们仍然看到提示表在增长。我们不知道集群发生了什么,2到3天没有错误,突然一个种子节点出现OOM错误。 j
操作超时 - 仅收到 0 个响应“,信息:”表示来自服务器的错误消息“,代码:4608,一致性:1,已接收:0,阻止:1,isData 呈现:0,... 我每天尝试在我的cassandra集群上执行SELECT查询时都会遇到几次这样的错误。我们在m1.large aws实例上有一个3节点集群。他们大多数时候都能成功,但我们偶尔会遇到上述错误。我们还没有生产,所以所有的桌子都很小。我们没有超过几千行
全能的开发者们。我在Spark中运行一些基本的分析,在这里我查询多节点Cassandra。我正在运行的代码以及我正在处理的一些非链接代码是: Spark的版本是1.6.0,Cassandra v3。0.10,连接器也是1.6.0。键空间有,表有5列,实际上只有一行。如您所见,有两个节点(OracleVM中制作的虚拟Macine)。 我的问题是,当我测量从spark到cassandra的查询时间时,