一、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.3export CASSANDRA_HOMEPATH=$CASSANDRA_HOME/bin:$PATHexport PATH
  • 将以下三个地址设置为Linux相应的IP
listen_address: 192.168.56.111rpc_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_cacheshints_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操作: