Cassandra属于最近比较流行的一款NoSQL数据库,http://nosql-database.org/中给NoSQL的 定义如下:
下一代的数据库产品应该具备这几点:非关系型的,分布式的,开源的,可以线性扩展的。这 类数据库最初的目的在于提供现代网站可扩展的数据库解决方案。这个运动开始于2009年初,目前正在迅速的发展。这种 类型的数据库具有:自由的schema,数据多处备份,简单的编 程API,数据的最终一致性保证等等。所以我们将这种类型的数 据库称为NoSQL(不仅仅是SQL,全称为“not only sql”)。
下面我们一起来看看 如果分别在Windows和Linux环境下安装和部署Cassandra。
大多数人使用的OS都是Windows,所以如果只是想简单地测试一下Cassandra,我们可以直接在安装好JDK1.6的Windows 系统上安装Cassandra,并进行简单的测试。
去http://cassandra.apache.org/下载即 可。目前最新的beta版本是0.6.0 b3,但是我们安装使用的最新的Release版本0.5.1。
将下载的压缩包解压,假设解压的位置是D:\apache-cassandra-0.5.1。
log4j.appender.R.File=D:\apache-cassandra-0.5.1\logs
<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>
CASSANDRA_HOME=D:\apache-cassandra-0.5.1
运行bin目录下的cassandra.bat。如果看到:INFO - Starting up server gossip,那么恭喜你,Cassandra已经在你的本机启动起来了。
运行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交互。
如果需要真正在生产环境中使用Cassandra,我们需要搭建一个Cassandra集群,这样才能真 正发挥出它作为NoSQL数据所应该具备的特性。
在Linux部署Cassandra的步骤基本与Windows上部署的类似,我们需 要在每一台机器上安装JDK1.6,然后下载Cassandra,并修改log4j.properties和storage-conf.xml的配置文件 和设置环境变量。不同的是,我们需要在storage-conf.xml文件中配置集群的信息:
<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>
直接留空即可:
<ListenAddress></ListenAddress>
直接留空即可:
<ThriftAddress></ThriftAddress>
每一个集群的名称都应该是不用的
<ClusterName>gpcuster.cnblogs.com</ClusterName>
<AutoBootstrap>true</AutoBootstrap>
<ReplicationFactor>3</ReplicationFactor>
需要根据实际的情况来配置,可以参考Wiki。
在每一台节点上,运行bin/cassandra。如果看到:INFO - Starting up server gossip,说明启动成功。
当所有的节点都运行起来以后,我们可以通过 JMX查看运行状况:
在 Windows环境和Linux环境下部署Cassandra基本都是类似的。只不过在Linux环境下bin目录中的脚本都能在Linux环境下运行, 而Windows环境下只有2个脚本可以运行。