在Linux上安装Cassandra数据库

一、Cassandra的介绍

Apache Cassandra 是一个开源的分布式 NoSQL 数据库管理系统,设计用于处理大量数据跨多个数据中心和云区域的分布式存储。它提供了高可用性、可扩展性、容错性等特点,适用于处理大量数据的读写操作。

概括:

Cassandra 最初由 Facebook 开发,后来成为 Apache 软件基金会的顶级项目。它是一个分布式键值存储系统,通常用于时间序列数据、用户数据、实时分析和 IoT 数据等场景。Cassandra 采用无单点故障的架构,能够在节点故障的情况下继续运行,而不会影响整体服务的可用性。

Cassandra的存储方式是列式存储,相较于传统的行式存储,具有适合大数据集的数据集合操作,适合数据压缩,查询效率高等特点。

特点:

  1. 分布式架构:Cassandra 的数据分布在多个节点上,没有单一的故障点。
  2. 去中心化:没有主节点,每个节点都参与数据的读写操作。
  3. 高可用性:即使某些节点发生故障,系统仍然可以继续运行,并且数据不会丢失。
  4. 可扩展性:可以通过添加更多的节点来扩展系统的容量。
  5. 容错性:设计了数据复制和故障转移机制,确保数据的持久性和一致性。
  6. 高性能:读写速度快,尤其是在高并发的场景下。
  7. 灵活的数据模型:支持动态列和表的创建,不需要预定义模式。

优势:

  1. 扩展性:可以通过增加更多的节点来提高系统的容量和处理能力。
  2. 低延迟:由于其分布式架构,Cassandra 能够提供低延迟的数据访问。
  3. 高吞吐量:适合处理大量的读写请求,特别是在写密集型的应用中。
  4. 多数据中心:可以在多个数据中心之间同步数据,提供地理冗余和低延迟的本地访问。
  5. 易于维护:提供了自动化的工具来管理数据的复制和恢复。
  6. 数据一致性:提供了不同的一致性级别,可以根据应用需求选择适当的一致性保证。

适用场景:

  • 大规模数据集:适用于需要存储和管理 PB 级别数据的场景。
  • 高可用性需求:适用于对服务可用性要求极高的应用。
  • 分布式系统:适用于需要跨多个地理位置分布数据的系统。
  • 实时分析:适用于需要实时处理和分析数据的应用。

二、安装

1. 下载:

清华大学开源镜像站下载地址:

https://mirrors.tuna.tsinghua.edu.cn/apache/cassandra/4.1.6/

官网下载地址:

https://www.apache.org/dyn/closer.lua/cassandra/4.1.6/apache-cassandra-4.1.6-bin.tar.gz

cassandra需要python3支持,正式安装前请确保linux已经有python3环境。

2. 上传解压:

tar -zxvf apache-cassandra-4.1.6-bin.tar.gz

进入根目录下,创建文件夹:

mkdir data
mkdir commitlog
mkdir saved-caches

3. 修改配置文件:

在conf目录下,找到cassandra.yaml文件,修改以下配置项:

data_file_directories:
    - /opt/tools/cassandra-4.1.6/data

commitlog_directory: /opt/tools/cassandra-4.1.6/commitlog

saved_caches_directory: /opt/tools/cassandra-4.1.6/saved_caches

# 改为自己的主机IP
rpc_address: 192.168.100.101

4. 启动cassandra:

./bin/cassandra -R

出现以下信息代表启动成功:

INFO  [main] 2024-09-10 19:38:17,504 StorageService.java:3075 - Node /192.168.100.101:7000 state jump to NORMAL

查看服务状态:

./bin/nodetool status

如果启动出错,可以用以下命令查看:

./bin/journalctl -u cassandra

三、Cassandra的基本概念

1. 数据模型

1.1列(Column)
列是Cassandra的基本数据结构单元,具有三个值:名称,值、时间戳

1.2列族( Column Family)
列族相当于关系数据库的表(Table),是包含多行数据的容器。

1.3键空间 (KeySpace)
键空间(KeySpace)相当于数据库。

2. 数据类型

数值类型:

int32位有符号整型
smallint16位有符号整型
bigint长整型
tinyint8位有符号整型
varint可变精度有符号整型
float32位浮点型
double64位浮点型
decimal高精度浮点型

文本类型:

asciiASCII字符串
text固定长度字符串
varchar可变长度字符串

时间类型:

timestamp包含了日期和时间的时间戳
date日期
time时间

集合类型:

set无需的集合数据类型
list有序序列
map包含了键值对的集合类型

其他类型:

boolean布尔类型
blob二进制对象
inetIPv4或IPv6网络地址
counter计数器类型

四、基本操作

1. 操作键空间

1.1 创建键空间

create keyspace KeyspaceName with replicaton={'class':strategy name,   
'replication_factor': No of replications on different nodes};

需要替换的部分:

KeyspaceName:键空间的名字。

class:复制策略的类,对于单节点一般采用SimpleStrategy,对于集群一般采用NetworkTopologyStrategy。

replication_factor:指定数据的复制数量,不能超过节点数。

1.2 连接键空间

use KeyspaceName;

1.3 修改键空间

alter keyspace keysapceName with <properties>

1.4 删除键空间 

drop keyspace keyspaeName;

2. 操作表和数据

2.1 创建表

create table tableName (id text primary key,name text,age int);

2.2 插入数据

insert into tableName(id,name,age) values('01','zhangsan',20);

2.3 查询数据

select * from tableNme;

2.4 修改数据

update tableName set 
cloumnName = newValue,
cloumnName = newValue 
where <condition>

2.5 删除数据

delete from tableName where <condition>;

2.6 删除表 

drop tableName;

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值