Apache Cassandra是一个开源的分布式NoSQL数据库系统,旨在处理大规模数据存储,并提供高可用性、无单点故障和线性扩展性。Cassandra特别适用于需要快速写入和读取大量数据的场景,例如日志数据存储、用户活动跟踪和传感器数据收集。
下载Cassandra
从Apache Cassandra官方网站下载最新版本的Cassandra:https://cassandra.apache.org/download/
解压Cassandra
tar -xzf apache-cassandra-<version>-bin.tar.gz
mv apache-cassandra-<version> /usr/local/cassandra
设置环境变量
在~/.bashrc
或~/.profile
文件中添加以下内容:
export CASSANDRA_HOME=/usr/local/cassandra
export PATH=$PATH:$CASSANDRA_HOME/bin
配置Cassandra环境
编辑$CASSANDRA_HOME/conf/cassandra-env.sh
:
export JAVA_HOME=/path/to/java
配置Cassandra主配置文件
编辑$CASSANDRA_HOME/conf/cassandra.yaml
:
cluster_name: 'Test Cluster'
seeds: '127.0.0.1'
listen_address: localhost
rpc_address: localhost
endpoint_snitch: SimpleSnitch
启动Cassandra
$CASSANDRA_HOME/bin/cassandra -f
验证安装
打开Cassandra shell(cqlsh):
$CASSANDRA_HOME/bin/cqlsh
键空间是Cassandra中最高级的数据结构,用于定义数据复制策略。
CREATE KEYSPACE my_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
在键空间中创建表以存储数据。
CREATE TABLE my_keyspace.my_table (
id UUID PRIMARY KEY,
name TEXT,
age INT
);
向表中插入数据。
INSERT INTO my_keyspace.my_table (id, name, age) VALUES (uuid(), 'Alice', 30);
INSERT INTO my_keyspace.my_table (id, name, age) VALUES (uuid(), 'Bob', 25);
从表中查询数据。
SELECT * FROM my_keyspace.my_table;
更新表中的数据。
UPDATE my_keyspace.my_table SET age = 31 WHERE id = <uuid>;
删除表中的数据。
DELETE FROM my_keyspace.my_table WHERE id = <uuid>;
Cassandra集群中的每个节点都平等,数据被分片并复制到不同的节点上以保证高可用性和容错性。配置集群时,需要设置以下参数:
编辑cassandra.yaml
文件,设置seeds
参数为多个节点的IP地址:
seeds: "192.168.1.1,192.168.1.2"
nodetool:Cassandra提供的命令行工具,用于监控和管理集群。
nodetool status
数据备份和恢复:使用nodetool snapshot
命令进行数据备份,并通过复制快照目录来恢复数据。
通过掌握Cassandra的基本概念、安装与配置方法,以及如何使用Cassandra进行分布式数据存储与管理,你可以构建高可用、可扩展的分布式数据库系统,处理大规模数据存储和管理任务。Cassandra的无中心化架构和强大的读写性能,使其适用于各种大数据处理场景。