2013-03-27 42 views
4

運行Cassandra 1.0時,我將一個環從5個節點縮小到4個。爲此,我在要刪除的節點上運行nodetool decommission,然後在該主機上停止cassandra並使用nodetool movenodetool cleanup更新其餘4個節點上的令牌以重新平衡羣集。完全刪除已停用的Cassandra節點

我的種子節點A和B.我刪除的節點是C.

這似乎爲6-7天正常工作,但現在我的四個節點之一認爲退役節點仍然部分環。

爲什麼會發生這種情況,以及從環中完全刪除退役節點的正確方法是什麼?

下面是nodetool ring所述一個節點上的輸出仍認爲退役節點是該環的一部分:

Address   DC   Rack  Status State Load   Owns Token          
                       127605887595351923798765477786913079296  
xx.x.xxx.xx  datacenter1 rack1  Up  Normal 616.17 MB  25.00% 0           
xx.xxx.xxx.xxx datacenter1 rack1  Up  Normal 1.17 GB   25.00% 42535295865117307932921825928971026432  
xx.xxx.xx.xxx datacenter1 rack1  Down Normal ?    9.08% 57981914123659253974350789668785134662  
xx.xx.xx.xxx datacenter1 rack1  Up  Normal 531.99 MB  15.92% 85070591730234615865843651857942052864  
xx.xxx.xxx.xx datacenter1 rack1  Up  Normal 659.92 MB  25.00% 127605887595351923798765477786913079296  

下面是nodetool ring其他3個節點上的輸出:

Address   DC   Rack  Status State Load   Owns Token          
                       127605887595351923798765477786913079296  
xx.x.xxx.xx  datacenter1 rack1  Up  Normal 616.17 MB  25.00% 0           
xx.xxx.xxx.xxx datacenter1 rack1  Up  Normal 1.17 GB   25.00% 42535295865117307932921825928971026432  
xx.xx.xx.xxx datacenter1 rack1  Up  Normal 531.99 MB  25.00% 85070591730234615865843651857942052864  
xx.xxx.xxx.xx datacenter1 rack1  Up  Normal 659.92 MB  25.00% 127605887595351923798765477786913079296  

更新: 我試圖刪除在節點B上使用nodetool removetoken的節點,它仍然聲稱節點C在環中。該命令運行了5個小時,似乎沒有做任何事情。唯一的變化是,節點C的狀態是「離開」現在,當我在節點B

回答

3

我能刪除使用nodetool removetoken的退役節點運行nodetool ring,但我不得不使用force選項。

這裏是我的命令的輸出:

iowalker:~$ nodetool -h `hostname` removetoken 57981914123659253974350789668785134662 

<waited 5 hours, the node was still there> 

iowalker:~$ nodetool -h `hostname` removetoken status 
RemovalStatus: Removing token (57981914123659253974350789668785134662). Waiting for replication confirmation from [/xx.xxx.xxx.xx,/xx.x.xxx.xx,/xx.xx.xx.xxx]. 
iowalker:~$ nodetool -h `hostname` removetoken force 
RemovalStatus: Removing token (57981914123659253974350789668785134662). Waiting for replication confirmation from [/xx.xxx.xxx.xx,/xx.x.xxx.xx,/xx.xx.xx.xxx]. 
iowalker:~$ nodetool -h `hostname` removetoken status 
RemovalStatus: No token removals in process. 
0

隨着卡桑德拉2.0,您需要使用SH nodetool退役節點被移除。 在你的情況,請檢查你是否刪除了cassandra-topology.properties中的條目