本地Ubuntu部署Cassandra:多节点配置及节点数查看调整问题
本地Cassandra多节点部署及节点数操作指南
一、本地能否部署多节点?
完全可以。单台Ubuntu 22.04机器上能部署多个Cassandra节点,用来测试集群功能。每个节点需要独立的配置文件、数据/日志目录,以及不冲突的端口。
二、查看当前节点数量
有两种常用方式:
- 用nodetool命令:在终端执行
nodetool status,输出里每行代表一个节点,数UN(正常运行)或DN(宕机)开头的行数就是节点总数。示例输出:
这里只有1行Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 74.02 KiB 16 100.0% 5f4a7d8e-1b2c-3d4e-5f6a-7b8c9d0e1f2a rack1UN,说明当前集群只有1个节点。 - 查询system.peers表:登录cqlsh后执行
SELECT * FROM system.peers;,这个表存的是除当前节点外的其他节点信息。如果返回空结果,说明只有1个节点;返回n行的话,总节点数就是n+1。
三、本地新增Cassandra节点步骤(以新增1个节点为例)
1. 复制原有配置文件
默认配置目录是/etc/cassandra/,复制一份给新节点:
sudo cp -r /etc/cassandra/ /etc/cassandra-node2
2. 修改新节点的配置文件(/etc/cassandra-node2/cassandra.yaml)
必须修改以下参数避免端口/目录冲突:
cluster_name:和原有节点保持一致(默认是Test Cluster)listen_address:可设为127.0.0.2(或保留localhost,但要改端口)rpc_address:对应设为127.0.0.2storage_port:默认7000,改成7001ssl_storage_port:默认7001,改成7002native_transport_port:默认9042,改成9043rpc_port:默认9160,改成9161data_file_directories:改为新目录,比如/var/lib/cassandra-node2/datacommitlog_directory:改为/var/lib/cassandra-node2/commitlogsaved_caches_directory:改为/var/lib/cassandra-node2/saved_cachesseed_provider:seeds列表要包含原有节点地址,比如- seeds: "127.0.0.1"
3. 创建新节点的目录并设置权限
sudo mkdir -p /var/lib/cassandra-node2/{data,commitlog,saved_caches} sudo chown -R cassandra:cassandra /var/lib/cassandra-node2/ sudo chown -R cassandra:cassandra /etc/cassandra-node2/
4. 启动新节点
指定新配置文件路径启动:
sudo cassandra -f -Dcassandra.config=file:///etc/cassandra-node2/cassandra.yaml
-f是前台运行,方便看日志;后台运行去掉-f即可。
5. 验证节点加入
再次执行 nodetool status,如果看到两个UN状态的节点,说明部署成功。
四、调整keyspace复制因子
多节点部署完成后,修改books keyspace的复制因子消除警告:
在cqlsh中执行:
ALTER KEYSPACE books WITH REPLICATION = { 'class': 'SimpleStrategy', 'replication_factor': 2 };
复制因子建议设置为≤集群节点数,比如2个节点设为2,3个节点设为3。之后执行 nodetool repair books 同步数据到新节点。
内容的提问来源于stack exchange,提问作者best_of_man
相关产品推荐
相关产品推荐

