Cassandra属于最近比较流行的一款NoSQL数据库,http://nosql-database.org/中给NoSQL的定义如下:
下一代的数据库产品应该具备这几点:非关系型的,分布式的,开源的,可以线性扩展的。这类数据库最初的目的在于提供现代网站可扩展的数据库解决方案。这个运动开始于2009年初,目前正在迅速的发展。这种类型的数据库具有:自由的schema,数据多处备份,简单的编程API,数据的最终一致性保证等等。所以我们将这种类型的数据库称为NoSQL(不仅仅是SQL,全称为“not only sql”)。
下面我们一起来看看如果分别在Windows和Linux环境下安装和部署Cassandra。
在Windows上单机运行Cassandra
大多数人使用的OS都是Windows,所以如果只是想简单地测试一下Cassandra,我们可以直接在安装好JDK1.6的Windows系统上安装Cassandra,并进行简单的测试。
1 下载Cassandra
去http://cassandra.apache.org/下载即可。目前最新的beta版本是0.6.0 b3,但是我们安装使用的最新的Release版本0.5.1。
2 安装Cassandra
将下载的压缩包解压,假设解压的位置是D:\apache-cassandra-0.5.1。
1 修改conf目录下的log4j.properties文件:
log4j.appender.R.File=D:\apache-cassandra-0.5.1\logs
2 修改conf目录下的storage-conf.xml文件:
<CommitLogDirectory>D:\apache-cassandra-0.5.1\commitlog</CommitLogDirectory>
<DataFileDirectories>
<DataFileDirectory>D:\apache-cassandra-0.5.1\data</DataFileDirectory>
</DataFileDirectories>
<CalloutLocation>D:\apache-cassandra-0.5.1\callouts</CalloutLocation>
<StagingFileDirectory>D:\apache-cassandra-0.5.1\staging</StagingFileDirectory>
3 设置系统的环境变量:
CASSANDRA_HOME=D:\apache-cassandra-0.5.1
3 启动Cassandra
运行bin目录下的cassandra.bat。如果看到:INFO – Starting up server gossip,那么恭喜你,Cassandra已经在你的本机启动起来了。
4 使用命令行进行简单的测试
运行bin目录下的cassandra-cli.bat。输入:connect localhost 9160,连接成功后可以看到下面的提示。
cassandra> connect localhost 9160
line 1:18 missing SLASH at ‘9160’
Connected to localhost/9160
然后,我们可以参考README.txt文件中提供的范例进行测试:
cassandra> set Keyspace1.Standard1[‘jsmith’][‘first’] = ‘John’
Value inserted.
cassandra> set Keyspace1.Standard1[‘jsmith’][‘last’] = ‘Smith’
Value inserted.
cassandra> set Keyspace1.Standard1[‘jsmith’][‘age’] = ’42’
Value inserted.
cassandra> get Keyspace1.Standard1[‘jsmith’]
(column=age, value=42; timestamp=1249930062801)
(column=first, value=John; timestamp=1249930053103)
(column=last, value=Smith; timestamp=1249930058345)
Returned 3 rows.
cassandra>
你也可以根据这篇文章《谈谈Cassandra的客户端》中的内容测试一下如何使用Java编写简单的程序和Cassandra交互。
在Linux上运行Cassandra集群
如果需要真正在生产环境中使用Cassandra,我们需要搭建一个Cassandra集群,这样才能真正发挥出它作为NoSQL数据所应该具备的特性。
在Linux部署Cassandra的步骤基本与Windows上部署的类似,我们需要在每一台机器上安装JDK1.6,然后下载Cassandra,并修改log4j.properties和storage-conf.xml的配置文件和设置环境变量。不同的是,我们需要在storage-conf.xml文件中配置集群的信息:
1 配置集群
1 配置集群节点信息
<Seeds>
<Seed>hadoop2</Seed>
<Seed>hadoop3</Seed>
<Seed>hadoop4</Seed>
<Seed>hadoop5</Seed>
<Seed>hadoop6</Seed>
<Seed>hadoop7</Seed>
<Seed>hadoop8</Seed>
<Seed>hadoop9</Seed>
<Seed>hadoop10</Seed>
</Seeds>
2 配置集群节点之间交互的监听地址
直接留空即可:
<ListenAddress></ListenAddress>
3 配置Thrift Server监听的地址
直接留空即可:
<ThriftAddress></ThriftAddress>
4 配置集群的名称
每一个集群的名称都应该是不用的
<ClusterName>gpcuster.cnblogs.com</ClusterName>
5 开启节点自动加入集群的功能
<AutoBootstrap>true</AutoBootstrap>
6 配置数据的备份数
<ReplicationFactor>3</ReplicationFactor>
7 调节Memory和Disk的性能
需要根据实际的情况来配置,可以参考Wiki。
2 运行Cassandra
在每一台节点上,运行bin/cassandra。如果看到:INFO – Starting up server gossip,说明启动成功。
3 查看集群运行情况
当所有的节点都运行起来以后,我们可以通过JMX查看运行状况:
总结
在Windows环境和Linux环境下部署Cassandra基本都是类似的。只不过在Linux环境下bin目录中的脚本都能在Linux环境下运行,而Windows环境下只有2个脚本可以运行。