- 前言:
看过不少Cassandra群集配置的资料,不少资料总会让人云里雾里的感觉啊,不得已再写一篇关于Cassandra群集配置的基本实现。
- 下载Cassandra
到这里:http://cassandra.apache.org/download/选择一个合适的版本,0.8以上版本比较可靠,当前的最高版本时1.0.8,建议采用。
- 安装JDK,window下安装不作说明,如果在Linux下安装参考:
- 设置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-cli.bat
- 执行:connect 192.168.18.129/9160;
- 执行: CREATE KEYSPACE demoKeySpace
with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'
and strategy_options = [{replication_factor:2}];
注意红色部分,如果你希望你的数据在不同服务器做复制,那么这些参数最好研究一下。
- 执行:use demoKeySpace;
- 创建column family,
执行:create column family Users with comparator=UTF8Type
and default_validation_class=UTF8Type andkey_validation_class=UTF8Type;
注意这些选项,可以到Cassandra文档看看具体代表什么。
- 存入数据:
执行:set Users[jsmith][first] = 'John';
- 获得数据:
执行:get Users[jsmith];
是不是有你前面存入数据的内容那个,加了时间戳而已。
关于时间戳,也请您仔细的查查资料。
- 接下来,停止192.168.18.129的cassandra服务。
在192.168.18.130/131两台机器上的Cassandra控制台上可以看到:
- 这时候执行:nodetool
应该可以看到一台down了
这时候通过cassandra-cli.bat连接130或是131,执行获取数据的过程,看看结果是否有你要的数据,如果最后有
证明你的群集系统不怕单点故障,
再停掉130的Cassandra服务
这时候通过cassandra-cli.bat连接131,执行获取数据的过程,看看结果是否有你要的数据,如果最后有
群集很强壮,down了2台服务器了,还能继续工作。
完毕,文中很多细节并没有介绍,你仔细仔细的阅读理解,不懂得发给邮件给我。
leekexi@gmail.com