2013-07-31 40 views
4

有4個節點集羣2個種子。使用cassandra 1.2.5。考慮在每個羣集中製作2個具有1個種子的節點的羣集。無法找到足夠源用於流範圍

退役,改變的種子在cassandra.yaml文件和刪除的數據和目錄commitlog並重新啓動,一個節點開始精細和第二個示出了用於兩個羣集。

INFO 10:28:37,241 JOINING: sleeping 30000 ms for pending range setup 
INFO 10:29:07,242 JOINING: Starting to bootstrap... 
ERROR 10:29:07,324 Exception encountered during startup 

java.lang.IllegalStateException:無法找到 流範圍(5253604194908817102,5256320442405919104]

回答

5

來源充足。如果所有的數據已被清除,並要設置新的節點,則應該得到這個異常:

java.lang.IllegalStateException:無法找到足夠的流源範圍源(5253604194908817102,525632044 2405919104]

的異常意味着您沒有足夠的數據來跨越所要求的範圍內發送,例如,如果在一個4節點集羣有複製因子1爲一定的密鑰空間和刪除2個節點,則由於它們與退役的節點一起丟失,所以不能夠傳送某些範圍。

從我瞭解你正在試圖做到這一點:

Original Cluster: 
Cluster A (x2 seeds) [node1, node2, node3, node4] 

New Cluster(s): 
Cluster A (x1 seed) [node1, node2] <-- no data 
Cluster B (x1 seed) [node1, node2] <-- no data 

這意味着你刪除從原來的1個種子,和退役的2個節點。然後,退役的2個節點被添加到他們自己的羣集(羣集B)中。對於所有4個節點,您刪除了數據目錄/提交日誌。

如果你這樣做,你不應該流的任何數據。這意味着你可能沒有刪除所有的數據目錄。我的建議是使用一個乾淨的安裝C *的,只是配置cassandra.yaml爲2簇的每1個節點的新的基礎設施。

0

轉到/var/lib/cassandra/data/system目錄,並刪除所有子目錄,除了%schema%。使用

rm -rf batchlog compaction_history compactions_in_progress hints IndexInfo local NodeIdInfo paxos peer_events peers range_xfers sstable_activity 

並重新啓動您的cassandra節點。