2015-10-18 109 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

如果你回來,嘗試一下,它很好用,但你必須記住它吃的是公羊記憶,所以很好,但有一些弱點。 –