第11周 海量数据与列式数据库Cassandra

Cassandra

Cassandra的含义
由Facebook开发,后被捐献给Apache基金会,成为开源软件
以Amazon Dynamo为最初的模仿对象,结合Google Big Table基于列族的数据模型,可以称为Dynamo 2.0
支持无中心的分布式设计,不存在单点问题,所有节点功能完全一样
在不间断服务的情况下可弹性扩展或收缩规模
高可用,支持热替换故障节点,支持多数据中心
可调节的一致性
面向行?还是面向列?
参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html?pagename=docs&version=1.2&file=index#cassandra/cli_using/use_index_col_t.html

cassandra安装

#安装jdk
# tar zxf jdk-7u9-linux-i586.tar.gz
# mv ./jdk1.7.0_09/ /usr/
[root@linux cassandra]# cd
[root@linux ~]# vi .bash_profile
JAVA_HOME=/usr/jdk1.7.0_09
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH 
# java -version
# java
# javac

#安装cassandra
# tar zxf apache-cassandra-2.0.3-bin.tar.gz
# mv apache-cassandra-2.0.3 cassandra
# cd cassandra/
# mkdir -p data commitlog saved_caches
#cd conf/
修改cassandra.yaml配置文件
data_file_directories:
    - /nosql/cassandra/cassandra/data
commitlog_directory: /nosql/cassandra/cassandra/commitlog
saved_caches_directory: /nosql/cassandra/cassandra/saved_caches
修改log4j-server.properties
log4j.appender.R.File= /nosql/cassandra/cassandra/commitlog/system.log

#启动cassandra
[root@linux bin]# pwd
/nosql/cassandra/cassandra/bin
[root@linux bin]# ./cassandra -f
#-f :是不放到后台去运行,方便做实验看日志输出。

#测试cassandra
[root@linux bin]# pwd
/nosql/cassandra/cassandra/bin
[root@linux bin]# ./cassandra-cli
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 2.0.3
The CLI is deprecated and will be removed in Cassandra 3.0. Consider migrating to cqlsh.
CQL is fully backwards compatible with Thrift data; see http://www.datastax.com/dev/blog/thrift-to-cql3
Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.
[default@unknown] ?

数据模型

集群(cluster)
Keyspaces ——集群是keyspace的容器,Keyspace是数据的最外层容器(类似Oracle的表空间概念)。
列族 ——Keyspace是列族的容器,列族类似于Oracle中的表,列族需要在keyspace中预先定义。
列 ——列是最基本的数据结构单元,列不需要预先定义。

[default@unknown] create keyspace zhang_sp;                    ##创建keyspace
29ac08c0-a3b5-3d95-bfc2-14c86a3d5263
[default@unknown] show keyspaces;
Keyspace: zhang_sp:
  Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy
  Durable Writes: true
    Options: [datacenter1:1]
  Column Families:
[default@unknown] use zhang_sp;
Authenticated to keyspace: zhang_sp
[default@zhang_sp] create column family test_clu ;              ##创建列族
1c418137-d55d-395f-bb92-89a1b8885ad3
[default@zhang_sp] show schema;
[default@zhang_sp] drop column family test_clu;
29ac08c0-a3b5-3d95-bfc2-14c86a3d5263
[default@zhang_sp] create column family test_clu               ##修改字符集
... with column_type = 'Standard'
... and comparator = 'UTF8Type'
... and default_validation_class = 'UTF8Type'
... and key_validation_class = 'UTF8Type';
e23dcea5-1be9-335a-a695-cc5e3ad16bc9
[default@zhang_sp] set test_clu['zhangsan'][age]=28;            ##插入行
Value inserted.
Elapsed time: 79 msec(s).
[default@zhang_sp] set test_clu['zhangsan'][phone]=34567;
Value inserted.
Elapsed time: 3.6 msec(s).
[default@zhang_sp] get test_clu['zhangsan'];                   ##查询
=> (name=age, value=28, timestamp=1388069357905000)
=> (name=phone, value=34567, timestamp=1388069563742000)
Returned 2 results.
Elapsed time: 5.51 msec(s).
[default@zhang_sp] list test_clu;                               ##列出所有行
Using default limit of 100
Using default cell limit of 100
-------------------
RowKey: zhangsan
=> (name=age, value=28, timestamp=1388069357905000)
=> (name=phone, value=34567, timestamp=1388069563742000)
1 Row Returned.
Elapsed time: 333 msec(s).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值