日期:2014-05-16  浏览次数:20514 次

cassandra 学习日记

本文所有实例的测试环境如下:

操作系统:Windows7(32位)

cassandra:apache-cassandra-0.6.1

JDK:jdk1.6.0_14

?

1、安装cassandra

?

???? 1.1> 下载地址:http://cassandra.apache.org/

?

???? 1.2> 修改基本的配置

????????? 一、先修改storage-conf.xml:

????????????? 欲修改节点名称如下:

?????????????? DataFileDirectory、CommitLogDirectory

?????????????? 以上两个个均为文件路径,根据自己的情况做更改。

?

????????? 二、修改 log4j.properties

?????????????? 把日志路径改为自己的就行了;看日志便于排查问题。

?

????????? 其它配置项修改

??????????????? 根据配置文件的说明,即可定制自己的配置!如果看不明白说明的话,请在网上先搜索下!

?

???? 1.3> 环境变量配置(针对windows操作系统)

??????????? CASSANDRA_HOME:自己的CASSANDRA根路径

??????????? 例如:CASSANDRA_HOME:D:\apache-cassandra-0.5.1

?

???? 1.4> 启动cassandra

?????????? 执行 bin/cassandra.bat(windows)?? bin/cassandra (Linux)

?????????? 看到启动页的最后一行为如下内容,即为启动成功!

???????? ? “ INFO - Starting up server gossip”

?

???? 1.5> 配置结束

?

2、 cassandra 数据模型

?

?????? set Keyspace1.Standard1['jsmith']['first'] = 'John'
????????????????? \??????????????????? \???????????????? \?????? ? ? \???????? ??? \
?????????????????? \??????????????????? \???????????????? \_ key?? \????????? ?? \_ value
??????????????????? \??????????????????? \?????????????????? ? ? ?????? \_ column
????????? ? ? ? ? ?? \_ keyspace? \_ column family

?

? ? ? [Keyspace]
??????????? Cassandra中的最大组织单元,其中包含了一系列Column family。

????? [Column family(CF)]
??????????? CF是某个特定Key的数据集合,每个CF物理上被存放在单独的文件中。

????? [Key]
??????????? 数据必须通过Key来访问,Cassandra允许范围查询.
??????????? 例如:start => ‘10050′, :finish => ‘10070′

????? [Column]

在Cassandra中Column是最小的数据单元,column和value构成一个对。
比如:name:“jacky”,column是name,value是jacky,每个column:value后都有一个时间戳:timestamp。
?


????? [Super column]

Super column是一种特殊的column,里面可以存放任意多个普通的column。而且一个CF中同样可以有任意多个Super column,一个CF只能定义使用Column或者Super column,不能混用。
下面是Super column的一个例子,homeAddress这个Super column有三个column:分别是street,city和zip:
homeAddress: {street:"binjiang road", city:"hangzhou", zip:"310052",}
?


????? [Sorting]

Cassandra取出的数据顺序是总是一定的。因为数据保存时已经按照定义的规则存放,所以取出来的顺序已经确定了,这是一个巨大的性能优势。有意思的是,Cassandra按照column name而