使用cassandra时, 故意做了一个节点,然后脱机.
这时cassandra集群可以插入数据(SIMPLE_STRATEGY,strategy_options = {replication_factor:3}),
但不能做删除动作了. 提示是必须所有节点在线时,才能删除.
移除已经断开的节点, 要用removenode:
在一个在线的节点上, 执行:
- ./nodetool removenode <被移除的node id>
查询这个nodeid用:
例如:
这个Host ID(例如: 3f3e1d18-f462-4967-9c80-d027c0bda9e5 )就是nodeid
- Datacenter: datacenter1
- =======================
- Status=Up/Down
- |/ State=Normal/Leaving/Joining/Moving
- -- Address Load Owns (effective) Host ID Token Rack
- UN 172.16.40.145 99.29 KB 100.0% f30f4fa5-406a-471e-9fce-1e0c8d4a0a58 1324557258837143942 rack1
- UN 172.16.40.146 93.5 KB 100.0% 3f3e1d18-f462-4967-9c80-d027c0bda9e5 3299147226285011594 rack1
- UN 172.16.40.147 115.96 KB 100.0% e11f283f-625e-4e3f-86d7-94dfc627139d 5542618885665049534 rack1
删除时,会很慢,
可以另外开一个控制台, 用./nodetool removenode status查看状态
如果发现总在等待一个节点, 可以停掉remove的那个进程, 再执行一次force
这个命令,不用再加id
然后进入cassandra-cli,执行删除命令
- truncate joblog;
- joblog truncated.
- list joblog;
- Using default limit of 100
- Using default column limit of 100
- 0 Row Returned.
- Elapsed time: 12 msec(s).
删除成功了
阅读(3842) | 评论(0) | 转发(1) |