Cassandra-stress集群外安装及非集群节点配置方法求助
解决cassandra-stress对接外部Cassandra集群的配置问题
首先,你完全不需要把独立服务器上的Cassandra加入目标集群,甚至根本不用启动这个服务器上的Cassandra服务——你只是借助它的cassandra-stress工具做客户端压力测试而已。下面是具体的解决步骤:
1. 停止并禁用本地Cassandra服务
为了避免这个节点尝试连接目标集群的seed节点、造成不必要的集群交互,一定要确保本地Cassandra服务处于停止状态:
# 用systemd管理的环境执行: sudo systemctl stop cassandra sudo systemctl disable cassandra # 用init脚本的环境执行: sudo service cassandra stop
2. 直接通过命令行指定目标集群参数
你提到的命令思路是对的,只需要补充正确的通信端口即可。Cassandra的CQL原生协议默认端口是9042,完整的测试命令如下:
cassandra-stress user profile=/usr/cassandra/stress-file.yaml ops(insert=1,books=1) n=10000 -node x.x.x.104,x.x.x.105,x.x.x.106 -port native=9042
参数说明:
-node:指定目标集群的节点IP,多个IP用逗号分隔(只需填几个seed节点或任意可访问的集群节点即可)-port native=9042:指定Cassandra的CQL通信端口(如果你的集群修改过默认端口,替换成对应的值)- 额外验证:请确保独立服务器能访问目标节点的
9042端口,可以用telnet x.x.x.104 9042测试连通性(你已经通了7000,但cassandra-stress依赖的是CQL端口9042)
3. (可选)如果一定要调整本地cassandra.yaml
其实完全没必要修改,但如果有特殊需求,只需保证以下关键配置:
cluster_name:必须和目标集群的cluster_name完全一致(cassandra-stress会验证集群名称匹配)listen_address/rpc_address:可以设为回环地址127.0.0.1,反正不会启动服务seeds:不需要配置(或者随便填),因为服务不启动,这个参数不会被用到
最后提醒:如果你的压力测试profile包含自定义schema,要么提前在目标集群创建好对应的keyspace和表,要么确保profile里包含了schema的创建语句(cassandra-stress可以自动执行)。
内容的提问来源于stack exchange,提问作者la_femme_it
相关产品推荐
相关产品推荐

