[置顶] 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 群集配置_第1张图片
  • 执行: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台服务器了,还能继续工作。

 

完毕,文中很多细节并没有介绍,你仔细仔细的阅读理解,不懂得发给邮件给我。

[email protected]


你可能感兴趣的:(linux,File,validation,服务器,Class,cassandra)