- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式Key-Value存储系统——Cassandra入门
Cassandra 的数据存储结构
Cassandra的数据模型是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo和Googles BigTable的数据结构和功能特点,采用 Memtable 和 SSTable 的方式进行存储。在Cassandra写入数据之前,需要先记录日志( CommitLog ),然后数据开始写入到Column Family对应的 Memtable 中,Memtable 是一种按照key排序数据的内存结构,在满足一定条件时,再把 Memtable 的数据批量的刷新到磁盘上,存储为 SSTable 。
下图是Cassandra的数据模型图:
Cassandra的数据模型的基本概念:
1. Cluster : Cassandra的节点实例,它可以包含多个 Keyspace2. Keyspace : 用于存放 ColumnFamily 的容器,相当于关系数据库中的Schema或database3. ColumnFamily : 用于存放Column的容器,类似关系数据库中的table的概念4. SuperColumn :它是一个特列殊的Column,它的Value值可以包函多个Column5. Columns:Cassandra的最基本单位。由name , value , timestamp组成
下面是关于数据模型实例分析:
写入一个studentA的信息:
set Keyspace1.Standard2[studentA][age] = 18
\ \ \ \ \
\ \ \_ key \ \_ value
\ \ \_ column
\_ keyspace \_ column family
读取studentA列信息:
get Keyspace1.Standard2[studentA]
返回的结果:
(column=age, value=18, timestamp=1270694041669000)
Cassandra 节点的安装和配置
获取Cassandra
# wget /apache-mirror/cassandra/0.6.0/apache-cassandra-0.6.0-rc1-bin.tar.gz# tar -zxvf apache-cassandra-0.6.0-rc1-bin.tar.gz# mv apache-cassandra-0.6.0-rc1 cassandra
# ls Cassandra
Cassandra的目录说明
bin 存放与Cassandra操作的相关脚本 conf 存放配置文件的目录 interface Cassandra 的 Thrift 接口定义文件,可以用于生成各种编程语言的接口代码 Javadoc 源代码的javadoc lib Cassandra 运行时所需的jar包
配制Cassandra节点的数据存储目录和日志目录
修改配制文件storage-conf.xml:
默认的内容
CommitLogDirectory/var/lib/cassandra/commitlog/CommitLogDirectory DataFileDirectoriesDataFileDirectory/var/lib/cassandra/data/DataFileDirectory
/DataFileDirectories
配置后的内容
CommitLogDirectory/data3/db/lib/cassandra/commitlog/CommitLogDirectory DataFileDirectoriesDataFileDirectory/data3/db/lib/cassandra/data/DataFileDirectory
/DataFileDirectories
修改日志配制文件 perties:
perties配置
#日志路径
#log4j.appender.R.File=/var/log/cassandra/system.log#配置后的日志路径:log4j.appender.R.File=/data3/db/log/cassandra/system.log# mkdir –p /data3/db/lib/cassandra
# mkdir –p /data3/db/log/Cassandra
文档评论(0)