> wget http://mirrors.hust.edu.cn/apache/cassandra/3.11.1/apache-cassandra-3.11.1-bin.tar.gz
> tar -zxvf apache-cassandra-3.11.1-bin.tar.gz
运行前,确保你的JAVA_HOME已经配置完成。
> sudo vim /etc/environmen
=======
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
=======
> source /etc/environment
> echo $JAVA_HOME
启动服务:
> cd /opt/cassandra
> ./bin/cassandra -f
注:-f表示使Cassandra在前台运行而不是在后台运行。输出日志在./logs/system.log
停止服务:
> ./bin/stop-server
会打印出please read the stop-server script before use。
如果我们打开这个文件,会发现有2种办法停止服务。一种是通过启动Cassandra的时候用-p指定PID来停止。第二种是直接通过kill删除进程。
因为我们现在使用-f启动并没有指定PID,使用可以使用第二种方式停止服务。
> ./bin/cqlsh
# 连接到一个指定的服务器
> ./bin/cqlsh localhost 9042
注:可以使用 CQLSHHOSTand CQLSH_PORT变量,他会覆盖命令行里面的参数。
帮助:
cqlsh> help;
cqlsh> CREATE_TABLE help;
显示当前cluster:
cqlsh> DESCRIBE CLUSTER;
显示当前存在的keyspaces:
cqlsh> DESCRIBE KEYSPACES ;
这些system_traces system_schema system_auth system system_distributed自带的系统keyspaces是用来做内部管理的,有点和master,temp database类似。Cassandra使用这些keyspaces保存schema,tracing和security information。
显示版本:
cqlsh> SHOW VERSION;
Cassandra keyspace和关系型数据库的概念类似。它可以定义一个或多个(表 or column families)。
在使用命令的时候记得常用tab,会有自动补齐功能。
创建keyspace:
cqlsh> CREATE KEYSPACE my_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'};
cqlsh> DESCRIBE my_keyspace;
注:class代表使用什么作为replication策略,replication_factor表示这个keyspace的数据需要写到几个node上面去。在production的环境下面,一定不能只使用1个replication_factor。
切换到新建的keyspace:
cqlsh> USE my_keyspace ;
在新建的keyspace里面创建表:
cqlsh:my_keyspace> CREATE TABLE user ( first_name text, last_name text, PRIMARY KEY (first_name));
cqlsh:my_keyspace> DESCRIBE user ;
注:也可以直接使用 CREATE TABLE my_keyspace.user ( 这种语法创建表,不需要切换keyspace。
插入数据到表中:
cqlsh:my_keyspace> INSERT INTO user (first_name, last_name ) VALUES ( 'zhe', 'xiao');
cqlsh:my_keyspace> SELECT * FROM user ;
cqlsh:my_keyspace> DELETE last_name FROM user WHERE first_name = 'zhe';
cqlsh:my_keyspace> select * from user ;
cqlsh:my_keyspace> DELETE FROM user WHERE first_name = 'zhe';
清空或者删除表:
cqlsh:my_keyspace> TRUNCATE user ;
cqlsh:my_keyspace> DROP TABLE user ;