Contents:
下載程式 (Downloads)
- 可以在Apache Cassandra的下載網頁下載最新的穩定版本。這是最推薦的方式,下面其他的方法除非是Cassandra的開發人員或是發現bug必須使用最新版本才能修復時才會使用到。筆者撰稿的時候,最新版本的穩定版本0.7.0,接下來的範例也是以0.7.0版為主,此外指令系統環境預設是Ubuntu 10.10。
- 可以到Apache Cassandra的SVN上下載最新的原始檔自行build, https://svn.apache.org/repos/asf/cassandra/trunk/
- 或直接用SVN或git check out。
- svn checkout https://svn.apache.org/repos/asf/cassandra/trunk cassandra
- git clone git://git.apache.org/cassandra.git
- 或直接用SVN或git check out。
- 或者也可以在這裡找到 Nightly Build 版本,所謂Nightly Build版就是依據SVN上的最新程式碼每天Build出來的新版本,不過也因為程式碼都是最新的因此可能會有許多其他的問題。
簡單設置 (simple configuration)
Cassandra是利用Java所撰寫的因此在能夠運行JVM的平台就可以運行,此外根據Cassandra Wiki的說明,Cassandra必須在Java 1.6的版本才能運行推薦使用Sun JDK的 1.6 u19, u21或更新的版本。準備好JDK之後,解壓縮剛剛下載的檔案後可以修改下列檔案的設置:
- conf/cassandra.yaml
- 必須確認下列三個設置的目錄存在,如果不存在請手動修改該檔案或建立對應的目錄
- data_file_directories
- commitlog_directory
- saved_caches_directory
- 如果是Unix-Like的系統(如:Ubuntu Linux) 可以用下面的指令建立預設的目錄
sudo mkdir /var/lib/cassandra
sudo mkdir /var/lib/cassandra/data
sudo mkdir /var/lib/cassandra/commitlog
sudo mkdir /var/lib/cassandra/saved_caches
sudo mkdir /var/log/cassandra - 如果是Windows系統,則一定要修改cassandra.yaml的內容,例如:
- 必須確認下列三個設置的目錄存在,如果不存在請手動修改該檔案或建立對應的目錄
- conf/log4j.properties
- 筆者下載的0.7.0壓縮包裡沒有這個檔案,可以將log4j-tools.properties複製到log4j.properties再加以修改。
- 這個檔案預設的Log Level是INFO等級,如果有特殊需求可以改成更高(在log4j.rootLogger這邊)。
- 另外log檔案的預設路徑是/var/log/cassandra/system.log。如果特殊需要也可以修改。
- 如果是Windows的使用者的話,就一定要更改,否則log會寫不進去。
單一節點啟動(Running a single node)
啟動前須注意下面的事項:
- 前面設置的三個路徑路徑是可以被寫入的。如果建立資料夾用sudo命令來建立時,這些資料夾的owner會是root,所以因此執行Cassandra也必須是root才可以寫入。
- 或者下面執行的時候都用sudo使用root權限來運行。
- 可以將上面資料夾的owner改為當前的使用者「sudo chown -Rv $(whoami) /var/lib/cassandra」
sudo chown -Rv $(whoami) /var/lib/cassandra
sudo chown -Rv $(whoami) /var/log/cassandra
- 無法順利啟動時,請確認系統的JAVA_HOME路徑設置正確。
確認無誤後可以執行 「bin/cassandra -f」 來啟動系統(Windows系統請執行bincassandra.bat)。運行後可以利用「bin/nodetool -host <IP> ring」來查詢運行狀態。
啟動Cassandra叢集(Running a cluster)
一個Cassandra服務稱為一個節點(node),而Cassandra叢集(Cluster)即是啟動個node一起工作,node啟動時會依據seeds的設置來找到其它node,node間的溝通稱為Gossip,為了讓結點可以透過網路進行Gossip,因此也必須設置bind的網路位置。依照前面的說明與設置bind位址預設為localhost,因此只能啟動single node(單一節點)的Cassandra,但如果要啟動多個節點,則必須修改「conf/cassandra.yaml」中的設置。
- seeds
- 堤供node啟動時能找到其他node的服務。適合設置較為穩定的node作為seeds
- listen_address
- 即為Gossip使用的位址,可以用主機名稱或是用介面的IP位址,請勿使用0.0.0.0來bind所有的介面。
- rpc_address
- 即為Thrift,可以使用0.0.0.0來bind所有的介面。
啟動後可以用指令來查詢node的啟動狀態。
usr_name@your-hostname:~$ apache-cassandra-0.7.0/bin/nodetool -h 192.168.1.1 ring
Address Status State Load Owns Token
114370047407031585825716411201808513080
192.168.1.1 Up Normal 17.64 KB 58.96% 44541738553819607218745010131931951155
192.168.1.2 Up Normal 17.48 KB 41.04% 11437004740703158582571641120180851308
參考網頁