Cassandra入門指南--安裝及配置,cassandra入門指南--
今天開始,學習NoSQL資料庫之Cassandra,將過程記錄下來,也供有興趣的參考。
簡介
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-7u45-linux-x64.tar.gz
Cassandra:apache-cassandra-2.1.9-bin.tar.gz
JRE環境配置1.首先檢查一下需要的JRE環境:
$ java –version
如果已經安裝了JDK或JRE,可能會顯示如下:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build24.45-b08, mixed mode)
如果沒有,那麼首先需要安裝,其實只需要JRE就可以,這裡因為有現成的JDK,所以就不單獨再去下載JRE包了,注意Cassandra2.1.9需要Java7+(具體是7u25+)
2.建立一個目錄,用來安裝jre:
$ sudo mkdir /usr/lib/jvm
3.然後將我們的jdk包解壓到該目錄:
$ sudo tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/lib/jvm
4.配置安裝一個新的JRE:
$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/jre/bin/java" 1
5.將該JRE設定為系統預設:
$ sudo update-alternatives --set java/usr/lib/jvm/jdk1.7.0_45/jre/bin/java
6.然後如第一步那樣檢查一下:
$ java –version
另外我們可以將該環境變數加入系統配置(可選):
$ sudo vi /etc/profile
最後追加:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45/jre
安裝Cassandra1.首先從官網下載:
http://cassandra.apache.org/download/
找到一個合適的下載連結:
wget http://mirrors.hust.edu.cn/apache/cassandra/2.1.9/apache-cassandra-2.1.9-bin.tar.gz
也可以手動下載後再傳到Linux中
2.解壓並安裝:
$ sudo tar -zxvfapache-cassandra-2.1.9-bin.tar.gz -C /var/lib
啟動Cassandra進入解壓後的目錄:
$ cd /var/lib/apache-cassandra-2.1.9
$ sudo bin/cassandra -f
如果啟動過程沒有什麼異常的話,那麼現在cassandra就已經啟動成功了:
INFO 10:32:48 Starting listening for CQL clients onlocalhost/127.0.0.1:9042...
INFO 10:32:48 Binding thrift service to localhost/127.0.0.1:9160
INFO 10:32:48 Listening for thrift clients...
Cassandra預設運行在9160連接埠,我們可以檢查一下:
$ netstat -nltp |grep 9160
顯示:
tcp 0 0 127.0.0.1:9160 0.0.0.0:* LISTEN
停止Cassandra
如果想停止的話,直接Ctrl+C就可以了。
註:” -f” 選項指定cassandra在前台運行,如果不加的話會在後台運行
如果要結束在後台啟動並執行cassandra,輸入:
$ ps -ef |grep cassandra
查詢到該進程的pid,然後kill:
$ sudo kill pid
這裡pid替換成你實際的pid即可。
使用cqlsh用戶端工具cqlsh是Cassandra的一個互動命令列介面,通過cqlsh,我們可以執行CQL(Cassandra Query Language)語句,使用CQL我們可以定義模式,插入資料,執行查詢等等。
運行以下命令可以串連到本地Cassandra執行個體:
$ bin/cqlsh
如果串連成功,會提示如下:
Connected to Test Cluster at127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.9 | CQL spec3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh>
上面顯示我們串連到了一個叫Test Cluster的叢集,這是預設的名字。
在cqlsh中命令要以”;”結尾,這跟MySQL等其他用戶端是一樣的,並且支援TAB補全及提示功能,這點比較方便,比如一個命令記不全或者一個命令會有哪些選項時,可以用TAB列出。
現在我們來建一個keyspace--表的命名空間:
CREATE KEYSPACE mykeyspace
WITH replication = {'class':'SimpleStrategy', 'replication_factor': 1};
基本上一路TAB就寫出來了,呵呵。
然後切換到該keyspace:
cqlsh> use mykeyspace ;
接著建表(叫做表可能不太準確):
create TABLE users(
userid intPRIMARY KEY,
fname text,
lname 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 users;
需要注意的是,如果要執行帶where條件的查詢,那麼條件中指定的列必須先建索引,否則會出錯:
select * from users where lname = 'smith';
InvalidRequest: code=2200 [Invalid query]message="No secondary indexes on the restricted columns support theprovided operators: "
先建索引:
create INDEX on users(lname);
然後再執行剛才的查詢就好了:
使用exit或quit可以退出cqlsh。
現在我們完成了基本的配置,但是我們現在只有一個節點,通常一個Cassandra叢集中存在多個節點,配置多個節點的叢集也非常簡單,基本上就是重複以上步驟,然後做些小的調整即可,這個放在下一篇再介紹吧。
參考文檔:http://wiki.apache.org/cassandra/GettingStarted
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。