天天看點

Cassandra 1.0.8 群集配置

  • 前言:
看過不少Cassandra群集配置的資料,不少資料總會讓人雲裡霧裡的感覺啊,不得已再寫一篇關于Cassandra群集配置的基本實作。
  • 下載下傳Cassandra
到這裡:http://cassandra.apache.org/download/選擇一個合适的版本,0.8以上版本比較可靠,目前的最高版本時1.0.8,建議采用。
  • 安裝JDK,window下安裝不作說明,如果在Linux下安裝參考:
http://blog.csdn.net/jemlee2002/article/details/7007320
  • 設定JAVA_HONE,這裡不做說明,不管你時什麼平台,上網搜尋一下怎麼設定環境變量。
  • 環境:

3個Win2003伺服器

IP1:192.168.18.129

IP2:192.168.18.130

IP3:192.168.18.131

  • 解壓apache-cassandra-1.0.8到指定目錄,目錄位置自己定。
  • 打開apache-cassandra-1.0.8/conf下的cassandra.yaml檔案,修改如下幾個地方

cluster_name: 'Test Cluster'

改成

cluster_name: '你的群集名稱,用English'

data_file_directories:

-/var/lib/cassandra/data

改成

data_file_directories:

- 你準備放資料的路徑,可以多個,直接換行前面加一個”-“即可

commitlog_directory:/var/lib/cassandra/commitlog

改成

commitlog_directory: 你準備放送出日志的路徑

saved_caches_directory:/var/lib/cassandra/saved_caches

改成

saved_caches_directory: 你準備放緩存的路徑

關于seeds:seeds就是種子的意思,也就是在整個群集中可以當其他節點的種子的意思,其他節點一旦把seeds的IP指向A機器,那麼其他節點在啟動時,就以A機器作為種子,從A節點複制資料,直到同步,是以慎重選擇seeds。

本示範設定

- seeds: "192.168.18.129"

listen_address: localhost

改成

listen_address: 具體機器的IP,比如Cassandra所在機器的IP是:192.168.18.131,那麼localhost就換成192.168.18.131。

rpc_address: localhost

改成

rpc_address: 0.0.0.0

儲存cassandra.yaml
  • 打開apache-cassandra-1.0.8/conf下的log4j-server.properties檔案,修改如下

log4j.appender.R.File=/var/log/cassandra/system.log

改成

log4j.appender.R.File=你準備放系統日志的路徑/system.log

儲存log4j-server.properties

  • 三台伺服器一樣的修改,隻會有些地方注意與機器保持一緻,特别是seeds,listen_address
  • 分别啟動3台機器的Cassandra.bat:

在控制台出現:Listening for thrift clients...

就說明伺服器啟動結束,等待用戶端連接配接。

  • 在其中一台執行nodetool
    Cassandra 1.0.8 群集配置
  • 執行:cassandra-cli.bat
Cassandra 1.0.8 群集配置
  • 執行:connect 192.168.18.129/9160;
Cassandra 1.0.8 群集配置
  • 執行: CREATE KEYSPACE demoKeySpace

with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'

and strategy_options = [{replication_factor:2}];

Cassandra 1.0.8 群集配置
注意紅色部分,如果你希望你的資料在不同伺服器做複制,那麼這些參數最好研究一下。
  • 執行:use demoKeySpace;
Cassandra 1.0.8 群集配置
  • 建立column family,

執行:create column family Users with comparator=UTF8Type

and default_validation_class=UTF8Type andkey_validation_class=UTF8Type;

注意這些選項,可以到Cassandra文檔看看具體代表什麼。

Cassandra 1.0.8 群集配置
  • 存入資料:
執行:set Users[jsmith][first] = 'John';
Cassandra 1.0.8 群集配置
  • 獲得資料:
執行:get Users[jsmith];
Cassandra 1.0.8 群集配置

是不是有你前面存入資料的内容那個,加了時間戳而已。

關于時間戳,也請您仔細的查查資料。

  • 接下來,停止192.168.18.129的cassandra服務。
在192.168.18.130/131兩台機器上的Cassandra控制台上可以看到:
Cassandra 1.0.8 群集配置
  • 這時候執行:nodetool
Cassandra 1.0.8 群集配置

應該可以看到一台down了

這時候通過cassandra-cli.bat連接配接130或是131,執行擷取資料的過程,看看結果是否有你要的資料,如果最後有

Cassandra 1.0.8 群集配置

證明你的群集系統不怕單點故障,

再停掉130的Cassandra服務

這時候通過cassandra-cli.bat連接配接131,執行擷取資料的過程,看看結果是否有你要的資料,如果最後有

Cassandra 1.0.8 群集配置
群集很強壯,down了2台伺服器了,還能繼續工作。
完畢,文中很多細節并沒有介紹,你仔細仔細的閱讀了解,不懂得發給郵件給我。
[email protected]

繼續閱讀