从零上手Cassandra分布式数据库部署完整教程
认识Cassandra与系统要求
Cassandra是一款开源的分布式NoSQL数据库,擅长处理海量数据和高并发写入。
部署前需要一台Linux服务器(本文以Ubuntu 20.04为例),内存建议不低于2GB,并确保root或sudo权限。
核心依赖是Java 8或11,以及Python 2.7(用于cqlsh工具)。
第一步:安装Java并设置环境变量
Cassandra运行在JVM之上,所以Java必须装好。
# 更新包列表
sudo apt update
# 安装OpenJDK 11(推荐)
sudo apt install openjdk-11-jdk -y
# 验证安装
java -version
如果输出显示版本号,说明安装成功。
然后设置JAVA_HOME:
# 查找Java安装路径
sudo update-alternatives --config java
# 复制显示的路径,比如 /usr/lib/jvm/java-11-openjdk-amd64
# 编辑 /etc/environment 添加一行
echo 'JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"' | sudo tee -a /etc/environment
# 重新加载环境变量
source /etc/environment
完成后执行 echo $JAVA_HOME 确认路径正确。
第二步:下载并安装Cassandra
前往Apache官网下载稳定版本,或直接用wget获取:
# 下载(版本4.1.3为例)
wget https://dlcdn.apache.org/cassandra/4.1.3/apache-cassandra-4.1.3-bin.tar.gz
# 解压到 /opt
tar -xzvf apache-cassandra-4.1.3-bin.tar.gz -C /opt
# 建立软链接方便管理(可选)
sudo ln -s /opt/apache-cassandra-4.1.3 /opt/cassandra
解压后目录结构如下:
/opt/cassandra/bin:启动脚本与工具/opt/cassandra/conf:配置文件/opt/cassandra/data:数据目录(默认)
第三步:修改核心配置文件
Cassandra的主要配置在 cassandra.yaml。
用vim打开:
sudo vim /opt/cassandra/conf/cassandra.yaml
重点修改以下项:
| 参数 | 说明 | 示例值 |
|------|------|--------|
| cluster_name | 集群名称,同一集群必须一致 | 'MyCluster' |
| listen_address | 节点间通信的IP | 内网IP,如192.168.1.100 |
| rpc_address | 客户端连接地址 | 0.0.0.0(监听所有网卡) |
| seeds | 种子节点列表,用于节点发现 | "192.168.1.100" |
| endpoint_snitch | 网络拓扑策略 | GossipingPropertyFileSnitch(默认) |
如果你只有一台机器做测试,listen_address 可以设为 127.0.0.1,但生产环境务必使用真实内网IP。
另外建议修改数据存储路径(如 /var/lib/cassandra),避免填满系统盘。
修改后保存退出。
第四步:启动服务与常见问题排查
切换到Cassandra安装目录,执行启动命令:
cd /opt/cassandra
sudo bin/cassandra -R # -R 表示前台运行(方便看日志)
如果一切正常,会看到大量启动日志,最后出现 Starting listening for CQL clients on /0.0.0.0:9042 说明成功。
常见报错与解决:
- Java版本不兼容:检查
java -version,必须为8或11。 - JAVA_HOME未设置:确认
echo $JAVA_HOME有输出,否则Cassandra启动脚本找不到Java。 - 端口占用:Cassandra默认使用7000(节点间)、9042(CQL)、7199(JMX)。用
netstat -tulpn | grep 7000检查,如有冲突可修改配置中的端口号。 - 数据目录权限:如果启动时提示
NoSuchFileException,手动创建/var/lib/cassandra并授权:
sudo mkdir -p /var/lib/cassandra
sudo chown -R `whoami`:`whoami` /var/lib/cassandra
第五步:验证分布式数据库是否正常
启动成功后,用cqlsh工具连接测试:
# 进入bin目录
cd /opt/cassandra/bin
# 连接本地(默认端口9042)
./cqlsh 127.0.0.1
看到 Connected to MyCluster at 127.0.0.1:9042 表示连接成功。
可以执行简单命令:
CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
USE test;
CREATE TABLE users (id UUID PRIMARY KEY, name text);
INSERT INTO users (id, name) VALUES (uuid(), 'Alice');
SELECT * FROM users;
如果返回一行数据,说明数据库读写正常。
另外用 nodetool status 查看集群状态:
./nodetool status
输出中 UN 表示节点正常运行。
至此,你的Cassandra分布式数据库已成功部署!
在实际生产环境中,还需要配置防火墙、开启认证、调整JVM堆内存等,但本文的基础步骤已能让你快速上手。
如果你在部署过程中遇到其他问题,欢迎在评论区留言交流。