2015-10-18 98 views
0

我使用COPY从CSV导入了大约400万行数据。 90分钟的过程中,我得到了以下错误,这表明在等待复制节点时出现了一些问题。 Keyspace设置复制因子为1,集群中只有一个节点。那么为什么协调员必须等待其他节点呢?Cassandra:协调节点超时等待复制节点的响应

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个节点集群。

一些更多的信息:

节点状态

[email protected]:~$ 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 

密钥空间配置

cqlsh:excelsior> desc keyspace; 

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

回答

2

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

+0

感谢您的回复。在我发布这个问题几天后,我开始使用一种工具将数据加载到本地'COPY'命令的Cassandra中。但是如果我需要再次使用'COPY',我会试试这个。 – Dojo

+0

如果你回来,尝试一下,它很好用,但你必须记住它吃的是公羊记忆,所以很好,但有一些弱点。 –