共计 1880 个字符,预计需要花费 5 分钟才能阅读完成。
一、Cassandra 简介
Cassandra 是一个混合型的非关系的数据库,相似于 Google 的 BigTable。其次要性能比 Dynamo(分布式的 Key-Value 存储系统)更丰盛,但反对度却不如文档存储 MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中性能最丰盛,最像关系数据库的。反对的数据结构十分涣散,是相似 json 的 bjson 格局,因而能够存储比较复杂的数据类型)。Cassandra 最后由 Facebook 开发,后转变成了开源我的项目。它是一个网络社交云计算方面现实的数据库。以 Amazon 专有的齐全分布式的 Dynamo 为根底,联合了 Google BigTable 基于列族(Column Family)的数据模型。P2P 去中心化的存储。很多方面都能够称之为 Dynamo 2.0。
二、装置与配置
- 解压安装包
tar -zxvf apache-cassandra-3.11.3-bin.tar.gz -C ~/training/
- 设置环境变量
CASSANDRA_HOME=/root/training/apache-cassandra-3.11.3
export CASSANDRA_HOME
PATH=$CASSANDRA_HOME/bin:$PATH
export PATH
- 将以下三个地址设置为 Linux 相应的 IP
listen_address: 192.168.56.111
rpc_address: 192.168.56.111
- seeds: "192.168.56.111"
- 启动 Cassandra
留神:要以 root 用户启动 Cassandra,须要应用 - R 参数。命令:cassandra -R
- 验证 Cassandra 运行环境:nodetool 工具
命令:nodetool status
从 Cassandra 2.1 版本开始,日志和数据都被寄存在 logs 和 data 的子目录下。老版本默认保留在 /var/log/cassandra 和 /var/lib/cassandra。
三、Cassandra 的配置参数
外围配置文件:conf/cassandra.yaml,启动过程中的日志信息如下图所示:
- 次要的运行时参数
cluster_name: 集群的名称
storage_port:节点外部通信的端口(默认: 7000)
listen_address:Cassandra 绑定的、用来连贯其余 Cassandra 节点的 IP 地址或者主机名称。(默认: localhost)
native_transport_port:客户端监听 CQL 本地传输的端口(默认: 9042)
- 目录相干的参数
data_file_directories:这个目录地位就是表数据存储的中央(在 SSTables 里)。Cassandra 将数据平均的散布在这个地位,受配置的压缩策略粒度的限度。commitlog_directory:这个目录是 commit log 寄存的中央。为了获得最佳的写入性能,将 commit log 放在独自的磁盘分区,或者 (现实状况下) 和 data 文件目录离开的物理设施上。commit log 只能追加的。saved_caches_directory:这个目录是 table key 和 row 缓存寄存的中央。默认地位:$CASSANDRA_HOME/data/saved_caches
hints_directory:设置 hints 的存储地位(默认: $CASSANDRA_HOME/data/hints)
四、Cassandra 的基本操作
(一)登录 CQL 客户端:cqlsh localhost
- 查看表 system.local 的构造:
- 查问零碎的信息:
- 查看表空间:describe keyspaces;
- 查看已有表:describe tables;
- 查看表构造:describe table table_name;
(二)应用 Cassandra 的 Java 客户端
Cassandra 应用 cql 语言作为操作语言,Cassandra 在 2.0 之后,在操作上越来越像 sql 数据库的操作,这样想从传统关系型数据库,切换到 Cassandra 的话,上手老本也越来越低。应用官网 java 驱动操作 Cassandra 非常简单。maven 引入相干的依赖如下所示:
<dependency>
<groupId>info.archinnov</groupId>
<artifactId>achilles-core</artifactId>
<version>6.0.0</version>
<classifier>shaded</classifier>
</dependency>
上面执行 CRUD 操作:
正文完