Cassandra:协调器节点超时等待副本节点的响应

时间:2015-10-18 06:04:56

标签: cassandra cassandra-2.0

我使用COPY从CSV导入大约400万行。进入过程90分钟后,我收到以下错误,表明在等待副本节点时出现了一些问题。 Keyspace的复制因子为1,集群中只有一个节点。那么为什么协调员必须等待任何其他节点?

Processed 4050000 rows; Write: 624.27 rows/ss
code=1100 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info=

{'received_responses': 0, 'required_responses': 1, 'write_type': 0, 'consistency': 1}
Aborting import at record #4050617. Previously-inserted values still present.
4050671 rows imported in 1 hour, 26 minutes, and 43.649 seconds.

我已经看过这个问题: Coordinator node timed out waiting for replica nodes in Cassandra Datastax while insert data

但这并没有解释为什么当复制因子为1并且它是1节点集群时,协调器会期望副本节点存在。

更多信息:

节点状态

student@cascor:~$ nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens  Owns    Host ID                               Rack
UN  127.0.0.1  1.64 GB    256     ?       f550e955-00f3-49a4-bc2d-c7f775079359  rack1

Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless

Keyspace配置

cqlsh:excelsior> desc keyspace;

CREATE KEYSPACE excelsior WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

1 个答案:

答案 0 :(得分:3)

解释一下: 'received_responses':0,'required_responses':1 所以你有一个节点,但它有很多工作。所以它无法回应。而且因为写操作需要时间,当你导入这么多数据时,它会杀死CPU并且写操作需要更长的时间,所以得到时间,节点响应“我不保存这个数据”所以有1个节点没有响应所以你得到这个错误。 我有同样的问题,改变这个(write_request_timeout_in_ms)帮助我,我做了数百万条记录的COPY导入。