對Debian和Gentoo下部署Cassandra指南

下載Cassandra

http://incubator.apache.org/cassandra/download/ 選擇二進制包下載,包名類似 apache-cassandra-incubating-x.y.z-bin.tar.gz 。

設置和運行

爲了方便,下面所有命令以root身份執行。

1.以一個獨立節點運行

  1. tar -zxvf cassandra-$VERSION.tar.gz   
  2.     mv cassandra-$VERSION /opt/cassandra   
  3.        
  4.     sudo mkdir -p /var/log/cassandra   
  5.     sudo mkdir -p /var/lib/cassandra   
  6.        
  7.     echo 'alias PATH=$PATH:/opt/cassandra/bin/'  >> ~/.bashrc && source ~/.bashrc  

創建start-cassandra.sh

  1. /opt/cassandra/bin/cassand  

 創 建stop-cassandra.sh

  1. kill `ps aux |  fgrep  $USER | grep cassandra | grep -v  'grep'  | awk  '{print $2}' `  

創建show-cassandra.sh

  1. #/bin/bash    
  2.     echo "cassandra PID: `ps aux |  fgrep  $USER | grep cassandra | grep -v 'grep' | awk '{print $2}'`"   

以後臺方式運行節點:

  1. ./start-cassandra.sh  

或以前臺方式運行:

  1. cassandra -f  

測試

  1. cassandra-cli --host localhost --port 9160  

如果成功會顯示:

  1. Connected to localhost/9160   
  2.    Welcome to cassandra CLI.   
  3.     
  4.    Type 'help'  or  '?'   for  help. Type  'quit'  or  'exit'  to quit.   
  5.    cassandra>  

嘗試寫和讀鍵:

  1. set  Keyspace1.Standard1[ 'shugelee' ][ 'first' ] =  'Lee'    
  2.   set  Keyspace1.Standard1[ 'shugelee' ][ 'last' ] =  'Li'    
  3.   set  Keyspace1.Standard1[ 'shugelee' ][ 'age' ] =  '21'    
  4.      
  5.   get  Keyspace1.Standard1[ 'shugelee' ]  

結果類似:

  1. (column=last, value=li; timestamp=1263050140529)   
  2.    (column=first, value=lee; timestamp=1263050117638)   
  3.    (column=age, value=18; timestamp=1263050155638)   
  4.  Returned 3 rows.  


2.以一個簇(集羣)運行

假定兩臺debian均按上面安裝並初步設置了cassandra環境:

  • A 192.168.1.101 [development server]
  • B 192.168.1.105 [developer Lee Li]

將A 192.168.1.101 [development server]作爲主server運行。

development server的設置

  1. <Seed>127.0.0.1</Seed>  

改爲:

  1. <Seed>192.168.1.101</Seed>  

  1. <ListenAddress>localhost</ListenAddress>  

改爲:

  1. <ListenAddress>192.168.1.105</ListenAddress>  

  1. <ThriftAddress>localhost</ThriftAddress>  

改爲:

  1. <ThriftAddress>0.0.0.0</ThriftAddress>  

developer Lee Li的設置

  1. <Seed>127.0.0.1</Seed>  

改爲:

  1. <Seed>192.168.1.101</Seed>   
  2.     <Seed>192.168.1.105</Seed>  

  1. <ListenAddress>localhost</ListenAddress>  

改爲:

  1. <ListenAddress>192.168.1.101</ListenAddress>  

  1. <ThriftAddress>localhost</ThriftAddress>  

改爲:

  1. <ThriftAddress>0.0.0.0</ThriftAddress>  

分別運行A和B上的cassandra:

  1. canssandra -f  

分別在A和B上測試:

  1. nodeprobe -host 192.168.1.101 ring  

如果成功,結果類似:

  1. DEBUG - Loading settings from /opt/cassandra/bin/../conf/storage-conf.xml   
  2.  DEBUG - Syncing log with a period of 1000   
  3.  Starting Token                                 Ending Token                                 Size Address        Ring   
  4.  132617574668126261121070408499066554197        127319937893509951017249225297128612859         1 192.168.1.101  |<--|   
  5.  127319937893509951017249225297128612859        132617574668126261121070408499066554197         1 192.168.1.105  |-->|  

分別在A和B上測試鏈接到一個node:

  1. cassandra-cli  --host 192.168.1.105 --port 9160  

如果成功,結果類似:

  1. # cassandra-cli  --host 192.168.1.105 --port 9160    
  2.  Connected to 192.168.1.105/9160   
  3.  Welcome to cassandra CLI.   
  4.     
  5.  Type 'help'  or  '?'   for  help. Type  'quit'  or  'exit'  to quit.   
  6.  cassandra>  


3.測試清單

測試清單一:

  • A連接到自己的cassandra
  • A連接到B的cassandra
  • B連接到自己的cassandra
  • B連接到A的cassandra
  • A連接到自己的cassandra,寫入並讀取鍵值
  • A連接到B的cassandra,寫入並讀取鍵值
  • B連接到自己的cassandra,寫入並讀取鍵值
  • B連接到A的cassandra,寫入並讀取鍵值

測試清單二:

  • B停止Cassandra服務,B連接到A並寫入數據,重啓B的Cassandra服務,B連接到自身的Casssandra,查看剛剛在A寫入 的數據(以-f方式運行觀察,B重啓時,立即自動與A同步!非常好!)


4.在各個平臺下運行


Gentoo GNU/Linux + JRE6下運行成功


Windows XP SP3 + JRE6下運行成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章