千家信息网

Cassandra 集群管理-添加新节点

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,Cassandra 集群添加节点注意本文档只是体系文档中的一部分,前面文档信息详见:https://blog.51cto.com/michaelkang/2419518场景:用于节点扩容,测试方法:清
千家信息网最后更新 2025年12月04日Cassandra 集群管理-添加新节点

Cassandra 集群添加节点

注意

本文档只是体系文档中的一部分,前面文档信息详见:
https://blog.51cto.com/michaelkang/2419518

场景:

用于节点扩容,测试方法:清理(172.20.101.165)节点上所有数据,模拟新节点加入;

确认内容:

1:使用相同版本的Cassandra2:注意,种子节点不能引导。确保新节点没有在-seeds列表中列出,不要使所有节点种子节点。3:copy加入DC现有节点配置文件到新节点,然后进行配置修改,文件如下:    在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 disableautocompaction
5:停止正在执行的压缩:nodetool stop COMPACTION

6:限制所有节点数据迁移流量:nodetool setstreamthroughput 32/64/更大
--限制为32mbps/64mbps/更大, 假设你的集群有10个机器,那么你的新节点的流量大约是32*10mbps。你可以根据数据迁移的进度,网络压力、节点压力、磁盘压力、完成的节点个数,调整这个值。

7:修改数据目录权限,如果调整了集群相关目录文件夹配置,首先要修改权限:chown -R cassandra.cassandra /var/lib/cassandra
8:启动引导程序节点(新加入节点执行): /etc/init.d/cassandra start
9.使用nodetool status来验证节点是否已完全引导,并且所有其他节点都处于运行状态(UN)而不处于任何其他状态。

10:现在重新开启所有节点自动压缩:nodetool enableautocompaction
11:关闭所有节点数据迁移流量: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://blog.csdn.net/yuanjian0814/article/details/78768889
https://www.jianshu.com/p/1dcca8f19894
http://cassandra.apache.org/doc/latest/tools/nodetool/nodetool.html?highlight=setstreamthroughput
https://zhaoyanblog.com/archives/684.html
https://blog.csdn.net/yuanjian0814/article/details/78777735
https://blog.csdn.net/iteye_19004/article/details/82648737

节点 数据 文件 配置 集群 流量 限制 令牌 压力 时间 磁盘 空间 分配 运行 相同 业务 信息 小时 数据中心 数量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 德惠租房软件开发 陕西超音速网络技术 在数据库中er图是什么意思 落实互联网企业网络安全责任 游戏ui用什么软件开发 桌面软件开发有大龄危机吗 科技强国是哪家互联网公司 app上架需要购买服务器吗 40岁还能搞网络安全么 nosql数据库技术期末 世界互联网科技奖 新能源企业数据库 莱西定制软件开发哪家靠谱 网络安全手抄报禁毒宣传画 服务器开机是系统恢复选项 百度在线网络技术有限公司天津 计算机网络技术基础篇高职教材 公安部科技信息化局服务器 网络安全信息图标 剑灵还有多少个服务器 方舟怎么取消收藏服务器 邮箱域名和服务器什么意思 手机网络不稳定无法连接服务器 社区组织开展网络安全宣传活动 南京润华软软件开发 张店包装管理软件开发公司 网络安全英语作文初中带翻译 浪潮服务器的默认管理口地址 网络安全审计工作流程 魔兽赛季服骨镰服务器什么时候开
0