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