Cassandra(一)---搭建基于Windows的分布式数据库

分布式数据库的应用---cassandra

Cassandra项目的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其它节点上,对Cassandra的读操作,也会被路由到某个节点上面去读取.对于一个Cassandra集群来说,扩展性能比较简单,直管在集群里面添加节点就可以了.有文章说Facebook的Cassandra集群有超过100台服务器构成的数据库集群.
Cassandra也支持比较丰富的数据结构和功能强大的查询语言,和MongoDB比较类似,查询功能比MongoDB稍弱一些.Cassandra以单个节点来衡量,其节点的并发读写性能不是特别好,有文章评测下来Cassandra每秒大约不到1万次读写请求,真实的风不是数据库访问系统必然是N多个节点构成的系统,其并发性能取决于整个系统的节点数量,路由效率,而不仅仅是但节点的并发负载能力.


cassandra是高可扩展性的第二代分布式数据库,如果想充分掌握和了解cassandra背后的理论,需要掌握amazon的dynamo和google bigtable.
学习一个陌生的技术,最重要的一步就是将其运行起来,运行之后再根据sample来分析其数据模型,然后再逐一研究整个系统模型的实现.

1)下载cassandra:
下载地址:[url]http://incubator.apache.org/cassandra/[/url],目前最新的beta版本是0.6.3
2)解压并安装cassandra:
将下载的压缩包解压,我本机解压的位置是E:\tools\数据库\apache-cassandra-0.6.3;
修改conf目录下的配置文件log4j.properties;
log4j.appender.R.File=d:\\temp\\cassandra\\system.log
修改conf目录下的配置文件storage-conf.xml;
<CommitLogDirectory>d:\\temp\\cassandra\\commitlog</CommitLogDirectory>
<DataFileDirectories>
<DataFileDirectory>d:\\temp\\cassandra\\data</DataFileDirectory>
</DataFileDirectories>

设置系统的环境变量:
JAVA_HOME=D:\server\jdk1.6
CASSANDRA_HOME=E:\tools\数据库\apache-cassandra-0.6.3
启动Cassandra服务:
进入命令行模式下Cassandra的安装目录,执行bin目录下的cassandra.bat,待界面进入到 "INFO 14:28:41,343 Starting up server gossip",那么恭喜你,启动成功了!

3)进入到Cassandra命令模式,进行一下交互测试:
在命令行模式下执行bin目录下的Cassandra-cli.bat,将会进入到Cassandra交互模式;
cassandra> connect localhost/9160
Connected to: "Test Cluster" on localhost/9160

参考随压缩包附带的readme文档,参照范例提供测试如下:
cassandra> set Keyspace1.Standard2['employee']['name']='li'
Value inserted.
cassandra> set Keyspace1.Standard2['employee']['job']='programmer'
Value inserted.
cassandra> set Keyspace1.Standard2['employee']['age']='31'
Value inserted.
cassandra> get Keyspace1.Standard2['employee']
=> (column=name, value=li, timestamp=1280042422312000)
=> (column=job, value=programmer, timestamp=1280042539578000)
=> (column=age, value=31, timestamp=1280042724312000)
Returned 3 results.


小结一下:
cassandra的配置还是比较简单的,配置文件storage-conf.xml中描述当前分布式数据系统所需的一些配置关系,结合上面的语句我们可以理解这种对应关系:
set Keyspace1.Standard2['employee']['name'] = 'li'
\ \ \ \ \
\ \ \_ key \ \_ value
\ \ \_ column
\_ keyspace \_ column family

:此节点可以认为是数据库名称,我们称为"空间"名称.
Standard2表示为列式存贮的结构名称.
对Cassandra的理解和分析暂时只能达到这个层次,稍后会通过代码继续带给大家更多的细节和代码结构,我们会持续揭开Cassandra神秘的面纱.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值