官网:http://cassandra.apache.org/
Apache Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。
Cassandra 的名称来源于希腊神话,是特洛伊的一位悲剧性的女先知的名字,因此项目的Logo是一只放光的眼睛。
这个项目由就职于Facebook的Avinash Lakshman(也是Amazon Dynamo的作者之一)和Prashant Malik在为Facebook的Inbox编写[1]。2008年,Facebook将项目开源,Cassandra在2009年成为了Apache软件基金会的Incubator项目,并在2010年2月走出孵化器,成为正式的基金会项目。
其中 datastax 公司提供了rpm安装,选择这个方式安装,因为安装升级方便。而且文档整理的非常好。
http://www.datastax.com/documentation/gettingstarted/index.html
1,只限制java1.6版本
java -version
2,限制操作系统(RHEL 5.x/CentOS 5.x only)
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
3,增加repos
vi /etc/yum.repos.d/datastax.repo
添加:
[datastax]
name= DataStax Repo for Apache Cassandra
baseurl=http://rpm.datastax.com/community
enabled=1
gpgcheck=0
4,安装dsc1.2
sudo yum install dsc12
安装成功,启动:
service cassandra start
查看状态
nodetool status
修改配置文件
vi /etc/cassandra/conf/cassandra.yaml
可以修改data路径,log路径,线程数
1)创建一个key space
CREATE KEYSPACE demo
with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'
and strategy_options = {replication_factor:1};
2)创建一个表:
use demo;
CREATE COLUMN FAMILY users
WITH comparator = UTF8Type AND key_validation_class=UTF8Type AND column_metadata = [ {column_name: full_name, validation_class: UTF8Type} {column_name: email, validation_class: UTF8Type} {column_name: state, validation_class: UTF8Type} {column_name: gender, validation_class: UTF8Type} {column_name: birth_year, validation_class: LongType} ];
3)设置user属性:
SET users['bobbyjo']['full_name']='Robert Jones';
SET users['bobbyjo']['email']='[email protected]';
SET users['bobbyjo']['state']='TX';
SET users['bobbyjo']['gender']='M';
SET users['bobbyjo']['birth_year']='1975';
SET users['yomama']['full_name']='Cathy Smith';
SET users['yomama']['state']='CA';
SET users['yomama']['gender']='F';
SET users['yomama']['birth_year']='1969';
4)读取用户
LIST users; GET users[utf8('bobbyjo')][utf8('full_name')];
5)删除属性
DEL users ['yomama']['coupon_code'];
删除一行 DEL users ['yomama'];
6)删除一列
DROP COLUMN FAMILY users;
删除空间
DROP KEYSPACE demo;
cassandra安装还是比较容易的。命令行操作也很方便。但是比较mysql语法稍微有些不同。
接下来继续研究java客户端读取方法和集群配置以及性能稳定性如何。