Cassandra入门指南--安装及配置

前端之家收集整理的这篇文章主要介绍了Cassandra入门指南--安装及配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天开始,学习Nosql数据库之Cassandra,将过程记录下来,也供有兴趣的参考。

简介

Apache Cassandra是一个开源分布式Nosql数据库系统。最初由Facebook创建,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。

文档:

Cassandra的官方文档主要是Wiki:http://wiki.apache.org/cassandra@H_403_25@ 另外,DataStax公司提供了更为详细的第三方文档可供参考学习:@H_403_25@ http://docs.datastax.com/en/cassandra/2.1@H_403_25@ 我一向习惯是,学习一个新东西,先把环境搭起来,然后再折腾。

基本环境

OS:Ubuntu 14.04 x64@H_403_25@ JDK:jdk-7u45-linux-x64.tar.gz@H_403_25@ Cassandra:apache-cassandra-2.1.9-bin.tar.gz

JRE环境配置

1.首先检查一下需要的JRE环境: @H_403_25@ $ java –version @H_403_25@ 如果已经安装了JDK或JRE,可能会显示如下: @H_403_25@ java version "1.7.0_45"@H_403_25@ Java(TM) SE Runtime Environment (build1.7.0_45-b18)@H_403_25@ Java HotSpot(TM) 64-Bit Server VM (build24.45-b08,mixed mode) @H_403_25@ 如果没有,那么首先需要安装,其实只需要JRE就可以,这里因为有现成的JDK,所以就不单独再去下载JRE包了,注意Cassandra2.1.9需要Java7+(具体是7u25+) @H_403_25@ 2.创建一个目录,用来安装jre: @H_403_25@ $ sudo mkdir /usr/lib/jvm @H_403_25@ 3.然后将我们的jdk包解压到该目录: @H_403_25@ $ sudo tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/lib/jvm @H_403_25@ 4.配置安装一个新的JRE: @H_403_25@ $ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/jre/bin/java" 1 @H_403_25@ 5.将该JRE设置为系统默认: @H_403_25@ $ sudo update-alternatives --set java /usr/lib/jvm/jdk1.7.0_45/jre/bin/java @H_403_25@ 6.然后如第一步那样检查一下: @H_403_25@ $ java –version @H_403_25@ @H_403_25@ 另外我们可以将该环境变量加入系统配置(可选): @H_403_25@ $ sudo vi /etc/profile @H_403_25@ 最后追加: @H_403_25@ export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45/jre

安装Cassandra

1.首先从官网下载: @H_403_25@ http://cassandra.apache.org/download/ @H_403_25@ 找到一个合适的下载链接 @H_403_25@ wget http://mirrors.hust.edu.cn/apache/cassandra/2.1.9/apache-cassandra-2.1.9-bin.tar.gz @H_403_25@ 也可以手动下载后再传到Linux中@H_403_25@ 2.解压并安装: @H_403_25@ $ sudo tar -zxvf apache-cassandra-2.1.9-bin.tar.gz -C /var/lib @H_403_25@

启动Cassandra

进入解压后的目录: @H_403_25@ $ cd /var/lib/apache-cassandra-2.1.9@H_403_25@ $ sudo bin/cassandra -f @H_403_25@ 如果启动过程没有什么异常的话,那么现在cassandra就已经启动成功了: @H_403_25@ INFO 10:32:48 Starting listening for CQL clients onlocalhost/127.0.0.1:9042...@H_403_25@ INFO 10:32:48 Binding thrift service to localhost/127.0.0.1:9160@H_403_25@ INFO 10:32:48 Listening for thrift clients...@H_403_25@

Cassandra默认运行在9160端口,我们可以检查一下:

注意:Cassandra2.1开始,客户端(cqlsh)默认端口改为9042了,Thrift客户端监听9160端口@H_403_25@

$ netstat -nltp |grep 9160

显示 @H_403_25@ tcp 0 0 127.0.0.1:9160 0.0.0.0:* LISTEN@H_403_25@ @H_403_25@

停止Cassandra

如果想停止的话,直接Ctrl+C就可以了。@H_403_25@ @H_403_25@ 注:” -f” 选项指定cassandra在前台运行,如果不加的话会在后台运行@H_403_25@ 如果要结束在后台运行的cassandra,输入:@H_403_25@ $ ps -ef |grep cassandra@H_403_25@ 查询到该进程的pid,然后kill:@H_403_25@ $ sudo kill pid@H_403_25@ 这里pid替换成你实际的pid即可。

使用cqlsh客户端工具

cqlsh是Cassandra的一个交互式的命令行界面,通过cqlsh,我们可以执行CQL(Cassandra Query Language)语句,使用CQL我们可以定义模式,插入数据,执行查询等等。 @H_403_25@ @H_403_25@ 运行以下命令可以连接到本地Cassandra实例: @H_403_25@ $ bin/cqlsh @H_403_25@ 如果连接成功,会提示如下: @H_403_25@ Connected to Test Cluster at127.0.0.1:9042.@H_403_25@ [cqlsh 5.0.1 | Cassandra 2.1.9 | CQL spec3.2.0 | Native protocol v3]@H_403_25@ Use HELP for help.@H_403_25@ cqlsh> @H_403_25@ @H_403_25@ 上面显示我们连接到了一个叫Test Cluster的集群,这是默认的名字。@H_403_25@ 在cqlsh中命令要以”;”结尾,这跟MysqL等其他客户端是一样的,并且支持TAB补全及提示功能,这点比较方便,比如一个命令记不全或者一个命令会有哪些选项时,可以用TAB列出。@H_403_25@ 现在我们来建一个keyspace--表的命名空间: @H_403_25@ CREATE KEYSPACE mykeyspace@H_403_25@ WITH replication = {'class':'SimpleStrategy','replication_factor': 1}; @H_403_25@ 基本上一路TAB就写出来了,呵呵。@H_403_25@ 然后切换到该keyspace:@H_403_25@ cqlsh> use mykeyspace ;@H_403_25@ 接着建表(叫做表可能不太准确):@H_403_25@ create TABLE users(@H_403_25@ userid intPRIMARY KEY,@H_403_25@ fname text,@H_403_25@ lname text@H_403_25@ );@H_403_25@

@H_403_25@

插入几条数据: @H_403_25@ insert into users (userid,fname,lname ) VALUES ( 1,'john','smith');@H_403_25@ insert into users (userid,lname ) VALUES ( 2,'zhangsan');@H_403_25@ insert into users (userid,lname ) VALUES ( 3,'smith'); @H_403_25@ @H_403_25@ 现在我们执行以下查询看看: @H_403_25@ select * from users; @H_403_25@

@H_403_25@

@H_403_25@ 需要注意的是,如果要执行带where条件的查询,那么条件中指定的列必须先建索引,否则会出错:@H_403_25@ select * from users where lname = 'smith';@H_403_25@ InvalidRequest: code=2200 [Invalid query]message="No secondary indexes on the restricted columns support theprovided operators: "

@H_403_25@

先建索引: @H_403_25@ create INDEX on users(lname); @H_403_25@ 然后再执行刚才的查询就好了: @H_403_25@

@H_403_25@

使用exit或quit可以退出cqlsh。@H_403_25@ 现在我们完成了基本的配置,但是我们现在只有一个节点,通常一个Cassandra集群中存在多个节点,配置多个节点的集群也非常简单,基本上就是重复以上步骤,然后做些小的调整即可,这个放在下一篇再介绍吧。@H_403_25@

@H_403_25@

参考文档:http://wiki.apache.org/cassandra/GettingStarted

猜你在找的NoSQL相关文章