Apache Cassandra 是一个开源的分布式 NoSQL 数据库系统
参考资料
Cassandra 详细简介
Apache Cassandra 是一个开源的分布式 NoSQL 数据库系统,设计用于处理大规模数据跨多个数据中心和云的高可用性需求。它采用无单点故障的架构,支持线性扩展,适用于需要高吞吐量和低延迟的应用场景。
特点
分布式架构:数据自动分区和复制,无单点故障。
高可用性:支持多数据中心复制,自动故障恢复。
线性扩展:通过添加节点轻松扩展。
灵活的数据模型:基于列族(Column Family)的宽列存储模型。
高性能:支持高吞吐量和低延迟的读写操作。
最终一致性:可配置的一致性级别(如 ONE、QUORUM、ALL)。
CQL(Cassandra Query Language):类似 SQL 的查询语言。
最新更新内容及时间
最新版本:4.1.3(截至 2023 年 10 月)
主要更新:
性能优化和 Bug 修复。
改进的存储引擎和压缩策略。
增强的监控和管理功能。
镜像下载地址
官网地址
阅读文档地址
Docker 安装示例
# 拉取最新 Cassandra 镜像 docker pull cassandra:latest # 运行 Cassandra 容器 docker run --name my-cassandra -d -p 9042:9042 cassandra:latest # 进入 CQL Shell docker exec -it my-cassandra cqlsh
YAML 设置教程(cassandra.yaml
关键配置)
集群名称:
cluster_name: 'MyCluster'
种子节点:
seeds: "ip1,ip2"
监听地址:
listen_address: <node_ip> rpc_address: <node_ip>
数据目录:
data_file_directories: - /var/lib/cassandra/data commitlog_directory: /var/lib/cassandra/commitlog saved_caches_directory: /var/lib/cassandra/saved_caches
调优参数:
concurrent_reads: 32 concurrent_writes: 32
常用错误及问题
启动失败:端口冲突
检查
9042
(CQL)和7000
(集群通信)端口是否被占用。节点无法加入集群
确认
seeds
配置正确且网络互通。检查防火墙设置。
磁盘空间不足
监控
data_file_directories
和commitlog_directory
的磁盘使用情况。CQL 连接超时
确保
rpc_address
配置为可访问的 IP,非localhost
。一致性级别冲突
根据需求调整一致性级别(如
QUORUM
或LOCAL_QUORUM
)。Schema 冲突
避免多节点同时修改 Schema,使用协调工具(如
nodetool repair
)。JVM 内存不足
调整
jvm.options
中的堆内存设置(如-Xms4G -Xmx4G
)。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。