2012-01-18

Tags: cassandra , java

這篇的說明是以Cassandra 1.0.6版為基準,早期版本可能沒有cqlsh功能。此外,在系統中已先自行建立testks keyspace,並在裡面建了employee columnfamily。

cqlsh功能簡述如下
在Cassandra 1.x版後,除了cassandra-cli之外,在 /cassandra_install_folder/bin 裡多了個cqlsh的指令。該指令跟cassandra-cli一樣是個client端工具,可用來連線至server端進行資料維護與查詢。cqlsh有個很大的好處,那就是「支援CQL語法操作」,要查資料時比用cassandra-cli來的輕鬆;但是...也有個很大的問題,cqlsh是在python之上執行,如果OS本身沒裝python,cqlsh就變成看的到吃不到的功能。至於要怎麼安裝?官網完全沒跟你講,也就是說...如果你完全不懂python,你根本連裝都不會裝,更不用提怎麼用了...囧rz

安裝cqlsh可參考下列步驟
===========================================================================
Ubuntu linux平台的安裝方式如下

  1. 利用synaptic安裝python 2.7。安裝完成後執行下面這行指令可以看到python顯示2.7的版本號。
    python -V
     
  2. 利用synaptic安裝python-setuptools,python-setuptools必需是給python 2.7使用的版本。

    如果想自行手動安裝python-setuptools,則是可以至官網下載 setuptools-0.6c11-py2.7.egg,並執行下面這行指令進行安裝。
    sudo sh setuptools-0.6c11-py2.7.egg

    python-setuptools安裝完成後,執行下面這行指令可看到easy_install指令的相關說明。
    easy_install -h
     
  3. 接著執行下面這行指令,將cql模組裝到python。
    sudo easy_install cql
完成上述的步驟後就可以使用cqlsh的功能了,cqlsh基本操作簡述如下。
1.執行下面這行指令,可查看cqlsh使用說明。
cqlsh -h

2.如果Cassandra不需帳號密碼就可登入,可執行下面這行指令登入系統。
cqlsh 127.0.0.1 9160

3.如果Cassandra要帳號密碼才可以登入,可執行下面這行指令登入系統。
cqlsh -u admin -p adminpwd 127.0.0.1 9160

4.登入系統後可以利用CQL語法進行各項操作。
cloudtu@cloudtu-VirtualBox:~/cassandra-1.0.6-1/bin$ ./cqlsh 127.0.0.1 9160
Connected to Test Cluster at 127.0.0.1:9160.
[cqlsh 2.0.0 | Cassandra 1.0.6 | CQL spec 2.0.0 | Thrift protocol 19.19.0]
Use HELP for help.
cqlsh> use testks;
cqlsh:testks> select * from employee;
KEY | age | dept | name |
3 | 3 | rd | tester3 |
6 | 6 | mis | tester6 |
5 | 5 | rd | tester5 |
19 | 19 | rd | tester19 |
10 | 10 | mis | tester10 |
8 | 8 | mis | tester8 |
2 | 2 | mis | tester2 |
16 | 16 | mis | tester16 |
13 | 13 | rd | tester13 |
1 | 1 | rd | tester1 |
12 | 12 | mis | tester12 |
9 | 9 | rd | tester9 |
14 | 14 | mis | tester14 |
4 | 4 | mis | tester4 |
15 | 15 | rd | tester15 |
11 | 11 | rd | tester11 |
20 | 20 | mis | tester20 |
18 | 18 | mis | tester18 |
7 | 7 | rd | tester7 |
17 | 17 | rd | tester17 |

cqlsh:testks> quit;
cloudtu@cloudtu-VirtualBox:~/cassandra-1.0.6-1/bin$
===========================================================================
Win7 X64平台的安裝方式如下
  1. 官網下載python 2.7 x64版本進行安裝,安裝目錄設到 C:\Python\Python27
  2. 在環境變數的Path參數裡加入python.exe所在目錄(e.g. Path=C:\Python\Python27;...etc)

    安裝完成後執行下面這行指令可以看到python顯示2.7的版本號。
    python -V
     
  3. 官網下載ez_setup.py,執行下面這行指令安裝python-setuptools。
    python ez_setup.py

    python-setuptools安裝完成後,切換到 C:\Python\Python27\Scripts,執行下面這行指令可看到easy_install指令的相關說明。
    easy_install -h
     
  4. 接著執行下面這行指令,將cql模組裝到python。
    easy_install cql
完成上述的步驟後就可以使用cqlsh的功能了,cqlsh基本操作簡述如下。
1.執行下面這行指令,可查看cqlsh使用說明。
python cqlsh -h

2.如果Cassandra不需帳號密碼就可登入,可執行下面這行指令登入系統。
python cqlsh 127.0.0.1 9160

3.如果Cassandra要帳號密碼才可以登入,可執行下面這行指令登入系統。
python cqlsh -u admin -p adminpwd 127.0.0.1 9160

4.登入系統後可以利用CQL語法進行各項操作。
Z:\apache-cassandra-1.0.6\bin>python cqlsh 127.0.0.1 9160
Connected to Test Cluster at 127.0.0.1:9160.
[cqlsh 2.0.0 | Cassandra 1.0.6 | CQL spec 2.0.0 | Thrift protocol 19.19.0]
Use HELP for help.
cqlsh> use testks;
cqlsh:testks> select * from employee;
KEY | age | dept | name |
3 | 3 | rd | tester3 |
6 | 6 | mis | tester6 |
5 | 5 | rd | tester5 |
19 | 19 | rd | tester19 |
10 | 10 | mis | tester10 |
8 | 8 | mis | tester8 |
2 | 2 | mis | tester2 |
16 | 16 | mis | tester16 |
13 | 13 | rd | tester13 |
1 | 1 | rd | tester1 |
12 | 12 | mis | tester12 |
9 | 9 | rd | tester9 |
14 | 14 | mis | tester14 |
4 | 4 | mis | tester4 |
15 | 15 | rd | tester15 |
11 | 11 | rd | tester11 |
20 | 20 | mis | tester20 |
18 | 18 | mis | tester18 |
7 | 7 | rd | tester7 |
17 | 17 | rd | tester17 |

cqlsh:testks> quit;

Z:\apache-cassandra-1.0.6\bin>
===========================================================================