Apache Cassandra是一个开源分布式NoSQL数据库系统。最初由Facebook创建,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。
cassandra的官方文档主要是wiki:http://wiki.apache.org/cassandra
另外,DataStax公司提供了更为详细的第三方文档可供参考学习:http://docs.datastax.com/en/cassandra/2.1
OS: Ubuntu 14.04 x64
JDK: jdk-1.80_144.tar.gz
Cassandra: apache-cassandra-3.11.1-bin.tar.gz
JRE环境配置
1.首先检查一下需要的JRE环境:$ java –version
当然我们可以打开${CASSANDRA_HOME}/conf/cassandra-env.sh,搜索关键字JVM_VERSION,如下
来确认安装的cassandra和本地的JDK版本是一致的。
$ sudo tar -zxvf apache-cassandra-3.11.1-bin.tar.gz -C /usr/local/software
3.配置环境变量
## Setting Cassandra
export CASSANDRA_HOME=/usr/local/software/apache-cassandra-3.11.1
export PATH=${CASSANDRA_HOME}/bin:$PATH
如果没有报什么奇奇怪怪的ERROR,然后看到 Node /x.x.x.x state jump to NORMAL,这样cassandra就算安装完成了。
Note: xxxxxxx 这个问题是因为同一个键空间里存在不同复制策略的表,不影响使用,但是最好建表和修改表的时候注意一下。
也可以在在bin目录下使用./nodetool status 查看集群信息确认一下
UN 表示的是该服务器的状态,UN是运行中,DN是宕机。
注意:Cassandra默认运行在7000端口,早版本是运行在9160端口,我们可以检查一下:
Cassandra2.1开始,客户端(cqlsh)默认端口改为9042了,Thrift客户端监听9160端口
netstat -nltp | grep 7000
显示:
如果想停止的话,直接Ctrl+C就可以了。
注:” -f” 选项指定cassandra在前台运行,如果不加的话会在后台运行
如果要结束在后台运行的cassandra,输入:
$ ps -ef | grep cassandra 或者 $ ps -aux | grep cassandra
查询到该进程的pid,然后kill:
$ sudo kill pid
这里pid替换成你实际的pid即可。
在cqlsh中命令要以”;”结尾,这跟MySQL等其他客户端是一样的,并且支持TAB补全及提示功能,这点比较方便,比如一个命令记不全或者一个命令会有哪些选项时,可以用TAB列出。
## 先建一个keyspace--表的命名空间:
CREATE KEYSPACE mykeyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor': 1};
#然后切换到该keyspace:
cqlsh> use mykeyspace ;
## 接着建表(叫做表可能不太准确):
create TABLE t_user (
user_id int PRIMARY KEY,
first_name text,
last_name text
);
## 插入几条数据:
insert into users (userid, fname, lname ) VALUES ( 1,'john','smith');
insert into users (userid, fname, lname ) VALUES ( 2,'john','zhangsan');
insert into users (userid, fname, lname ) VALUES ( 3,'john','smith');
操作效果如下:
现在我们执行以下查询看看:
select * from t_user;
需要注意的是,如果要执行带where条件的查询,那么条件中指定的列必须先建索引,否则会出错:
select * from t_user where first_name = 'john';
InvalidRequest: code=2200 [Invalid query]message="No secondary indexes on the restricted columns support theprovided operators: "
先建索引:
然后再执行刚才的查询就好了:
使用exit或quit可以退出cqlsh。
现在我们完成了基本的配置,但是我们现在只有一个节点,通常一个Cassandra集群中存在多个节点,配置多个节点的集群也非常简单,基本上就是重复以上步骤,然后做些小的调整即可。