scylladb集群管理

一.创建集群

1.安装scylladb

2.修改scylla.yaml配置文件,主要需要配置:

cluster_name:集群名称,所有节点相同

seeds:种子节点列表

listen_addressscylladb和集群其他节点进行通信的IP地址

auto_bootstrap:新节点是否自动同步数据到本节点

rpc_addressThriftCQL等客户端连接的地址

3.所有节点上启动scylladb。不需要同时启动,非seed节点要在有seed节点启动完成后才能加入集群。

 

二.新增节点

a).新节点安装scylladb

b).修改scylla.yaml配置文件,主要需要配置:

cluster_name:集群名称,要和要加入的集群的名称相同

seeds:种子节点列表,至少要包含一个可以正常通信的seed节点才可以加入集群

listen_addressscylladb和集群其他节点进行通信的IP地址

auto_bootstrap:新节点是否自动同步数据到本节点

rpc_addressThriftCQL等客户端连接的地址

c). 启动scylladb

PS.

官方文档中说集群中有DOWN的节点时,新节点不能加入集群。

但实际测试可以加入,原因未知。

 

三.auto_bootstrap说明

a).auto_bootstrap

配置新节点加入时,是否自动迁移数据到本节点。

加入节点才会执行本操作,如果是旧节点,即使配置成TRUE也没有意义。也就是说,如果一个DOWN的节点重新连接回来,数据是不会自动同步的,只有保存了hint数据的节点才会将掉线期间的数据发送到该节点。

auto_bootstrap默认开启。

b).token

如果设置了auto_bootstrap,将会找一个load最大的节点,将其一半的token环区间配置到当前结点上。(看的是较老的cassandra文章,未确认当前版本是否如此,可能是每个虚拟节点都分开这样处理)

如果没有设置auto_bootstrap,则随机生成token,或者使用用户指定的token

 

四.删除节点

1.删除正常节点

a)删除命令

nodetool decommission -h 192.168.1.244

运行命令后节点将被从集群中删除,但数据将被同步到其他节点上去。测试3节点、2副本、1.57亿数据,每个节点占用空间14GB左右,decommission耗时为22分钟。

b)节点从集群中被删除后,节点中的数据不会被删除,需要手动删除。如果没有删除数据的话,节点无法作为新节点重新加入到集群。

 

2.删除down节点

a)删除命令

nodetool removenode e9b26968-8220-4e54-8a78-2255ceb133d7

后面的e9b26968-8220-4e54-8a78-2255ceb133d7Host ID,可以通过nodetool status获取到。

b)down节点删除后也会进行数据同步,同样的数据耗时约35分钟,应该是因为节点少了,每个节点的压力变大了。这个过程的资源占用很高,CPU几乎占满,io和网络占用有几十MB/s

 

五.其他命令

1.nodetool repair

修复整个集群,一般需要定期运行以保证数据同步。

常见有以下情况下可能出现较长时间的不同步:

a)加入新节点,且没有设置auto_bootstrap

b)节点掉线长时间后再上线,hint长不够

2.nodetool compact

手动进行compaction,将会对本节点中的所有SSTable执行compact,可以减少空间占用

3.nodetool assassinate

删除一个down的节点,且不进行数据迁移

4.nodetool enablebackup

增量备份,机制是创建硬链接到备份目录

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值