小游戏管理如何提升企业数字化转型的效率与合规性
905
2022-09-28
Cassandra 集群管理-添加新节点
Cassandra 集群添加节点
注意
本文档只是体系文档中的一部分,前面文档信息详见: 在cassandra.yaml文件和 cassandra-topology.properties或 cassandra-rackdc.properties4:注意cassandra.yaml文件中设置以下属性 :auto_bootstrap:如果此选项已设置为false,则必须将其设置为true。该选项未在默认的cassandra.yaml配置文件中列出,默认为true。CLUSTER_NAME:新节点正在加入的群集的名称。listen_address/broadcast_address:使用其他Cassandra节点用来连接到新节点的IP地址。endpoint_snitch:告密者Cassandra用来定位节点和路由请求。num_tokens:要分配给节点的vnode数量。使用与数据中心中其他节点上设置的相同数量的令牌。令牌范围按比例分配,如果硬件能力不同,则为容量更高,性能更好的系统分配更多的令牌范围。allocate_tokens_for_local_replication_factor:指定数据中心密钥空间的复制因子(RF)。5:加节点期间注意监控流量、进程,确保任务没有死掉;
过程梳理:
1:安装服务;2:同步配置文件,修改配置;3:修改修改cassandra.ymal文件的streaming_socket_timeout_in_ms值。默认值是3600000,即1小时,改成172800000(48小时),保证时间足够传输完所有数据。
--同步过程会对集群带来很大的负载,所以尽可能关闭或限制一些功能,避免对线上业务造成影响。非必选项,执行命令4-5--所有节点都关闭,包括新节点(新节点启动后关闭))4:关闭所有节点的压缩:nodetool disableautocompaction5:停止正在执行的压缩:nodetool stop COMPACTION
6:限制所有节点数据迁移流量:nodetool setstreamthroughput 32/64/更大--限制为32mbps/64mbps/更大, 假设你的集群有10个机器,那么你的新节点的流量大约是32*10mbps。你可以根据数据迁移的进度,网络压力、节点压力、磁盘压力、完成的节点个数,调整这个值。
7:修改数据目录权限,如果调整了集群相关目录文件夹配置,首先要修改权限:chown -R cassandra.cassandra /var/lib/cassandra8:启动引导程序节点(新加入节点执行): /etc/init.d/cassandra start9.使用nodetool status来验证节点是否已完全引导,并且所有其他节点都处于运行状态(UN)而不处于任何其他状态。
10:现在重新开启所有节点自动压缩:nodetool enableautocompaction11:关闭所有节点数据迁移流量:nodetool setstreamthroughput 0
12:手动清理每一台老节点磁盘空间:nodetool cleanup在新节点成功加入之后,对每个先前存在的节点运行nodetool cleanup,花费时间较长,推荐后台运行nodetool cleanup。如果你不这样做,旧的数据仍然会在老节点上,占用磁盘空间。cleanup是单线程操作,整体上影响不大,不需要关闭压缩。cleanup是单机行为,也不需要限制节点stream传输。避开业务高峰时间,逐个节点执行。
验证集群数据
[root@kubm-01 ~]# cqlsh 172.20.101.157 -u cassandra -p cassandra cassandra@cqlsh> SELECT * from kevin_test.t_users; user_id | emails | first_name | last_name---------+---------------------------------+------------+----------- 6 | {'k6-6@gmail.com', 'k6@pt.com'} | kevin6 | kang 7 | {'k7-7@gmail.com', 'k7@pt.com'} | kevin7 | kang 9 | {'k9-9@gmail.com', 'k9@pt.com'} | kevin9 | kang 4 | {'k4-4@gmail.com', 'k4@pt.com'} | kevin4 | kang 3 | {'k3-3@gmail.com', 'k3@pt.com'} | kevin3 | kang 5 | {'k5-5@gmail.com', 'k5@pt.com'} | kevin5 | kang 0 | {'k0-0@gmail.com', 'k0@pt.com'} | kevin0 | kang 8 | {'k8-8@gmail.com', 'k8@pt.com'} | kevin8 | kang 2 | {'k2-2@gmail.com', 'k2@pt.com'} | kevin2 | kang 1 | {'k1-1@gmail.com', 'k1@pt.com'} | kevin1 | kang
参考信息:
https://jianshu.com/p/1dcca8f19894
http://cassandra.apache.org/doc/latest/tools/nodetool/nodetool.html?highlight=setstreamthroughput
https://zhaoyanblog.com/archives/684.html
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~