官方主页:
http://cassandra.apache.org/

简介:
  The Apache Cassandra Project develops a highly scalable second-generation distributed database, bringing together Dynamo's fully distributed design and Bigtable's ColumnFamily-based data model. 
Cassandra was open sourced by Facebook in 2008, and is now developed by Apache committers and contributors from many companies.

Apache Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。
架构

  • Cassandra使用了Google BigTable的数据模型,与面向行的传统的关系型数据库不同,这是一种面向列的数据库,列被组织成为列族(Column Family),在数据库中增加一列非常方便。对于搜索和一般的结构化数据存储,这个结构足够丰富和有效。
  • Cassandra的系统架构与Dynamo一脉相承,是基于O(1)DHT(分布式哈希表)的完全P2P架构,与传统的基于Sharding的数据库集群相比,Cassandra可以几乎无缝地加入或删除节点,非常适于对于节点规模变化比较快的应用场景。
  • Cassandra的数据会写入多个节点,来保证数据的可靠性,在一致性、可用性和网络分区耐受能力(CAP)的折衷问题上,Cassandra比较灵活,用户在读取时可以指定要求所有副本一致(高一致性)、读到一个副本即可(高可用性)或是通过选举来确认多数副本一致即可(折衷)。这样,Cassandra可以适用于有节点、网络失效,以及多数据中心的场景。

特性
  和其他数据库比较,Cassandra有三个突出特点:

  • 模式灵活 :使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。
  • 真正的可扩展性 :Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。
  • 多数据中心识别 :你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。

一些使Cassandra提高竞争力的其他功能:

  • 范围查询 :如果你不喜欢全部的键值查询,则可以设置键的范围来查询。
  • 列表数据结构 :在混合模式可以将超级列添加到5维。对于每个用户的索引,这是非常方便的。
  • 分布式写操作 :有可以在任何地方任何时间集中读或写任何数据。并且不会有任何单点失败。

与RDBMS对比来认识cassandra:

keyspace:是cassandra中数据的最外层容器,和关系型数据库概念相近。keyspace有一个名字和一些定义了整个keyspace范围的全局行为属性。有部分人建议,给每个应用建立一个单独的keyspace,但实际没有太多事实依据。要注意,如果给一个应用创建了上千个keyspace,难免会遇到困难。

可以为一个应用创建多个keyspace,但通常只有希望为不同的列族设置不同的副本因子和副本放置策略的时候,才考虑让同一个应用使用多个keyspace。比如,对于一些低优先级的数据,可以单独放在一个设置较低副本因子的keyspace当中,这样就可以减少一些cassandra复制这些数据的工夫。但是这样增加了太多的复杂度,有可能得不偿失。

System keyspace:用于存储关于集群的原数据,以帮助各种操作顺利进行,如下面的数据库非常类似。

在SQL Server中,同样维护着两个元数据库:master和tempdb。master用于保存磁盘空间、使用率、系统设置以及一般服务安装信息等。而tempdb则是一个工作空间,用于存储中间结果和完成一般性任务的。

在Oracle中,有system的表空间,用作类似用途。

system keyspace不仅存储了用于本地节点的数据,也存储提示切换信息。这些元数据包括:

  • 节点令牌
  • 集群名
  • 用于支持动态加载的keyspace和schema的定义;
  • 迁移数据
  • 节点是否自举成功

列族:与数据库的表容器类似,keyspace是一个或多个列族的容器。列族就类似于关系型数据库里的表,是集合了很多行的容器。每一行都有一些有序的列。

列:

参考:
http://zh.wikipedia.org/zh/Cassandra

安装

本节将介绍在在CentOS 6.4安装Cassandra 2.0.9

一、安装jdk1.7

因为Cassdra2.0.9最低要求就是1.7版本,jdk的安装见文章《CentOS 6下安装JDK并配置环境变量》

二、准备用户环境

 
1
2
groupadd cassandra
useradd -s /bin/bash -g cassandra -d /opt/cassandra cassandra

三、安装cassandra

1、下载

找一个适合的镜像节点:我选的是北京理工大学的节点

 
1
wget http://mirror.bit.edu.cn/apache/cassandra/2.0.9/apache-cassandra-2.0.9-bin.tar.gz

PS:安全起见自己可以验证一下数据完整性

2、解压、设置权限

 
1
2
3
4
5
6
tar -zxvf apache-cassandra-2.0.9-bin.tar.gz  -C /opt/cassandra
chown -R cassandra:cassandra /opt/cassandra
mkdir /var/lib/cassandra
mkdir /var/log/cassandra
chown -R cassandra:cassandra /var/lib/cassandra
chown -R cassandra:cassandra /var/log/cassandra

3、运行

切换到cassandra用户,运行bin/cassandra

 
1
2
cd /opt/cassandra/apache-cassandra-2.0.9/bin/
su cassandra ./cassandra

如果出现

 
1
2
INFO 02:34:57,479 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-4-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-3-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-1-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-2-Data.db')]
INFO 02:34:57,545 Node localhost/127.0.0.1 state jump to normal

证明成功启动,开一个cqlsh试试

 
1
2
3
4
5
root@localhost bin]# ./cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.9 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh>

4、关闭Cassandra

 
1
2
ps -aux |grep cassandra
kill pid#pid为cassandra的pid

本节完成在centos 6.4安装cassandra 2.0.9/2.0.10。

Cassandra安装及其简单试用的更多相关文章

  1. Spark简介安装和简单例子

    Spark简介安装和简单例子 Spark简介 Spark是一种快速.通用.可扩展的大数据分析引擎,目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL.Spark S ...

  2. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  3. 『NiFi 学习之路』入门 —— 下载、安装与简单使用

    一.概述 "光说不练假把式." 官网上的介绍多少让人迷迷糊糊的,各种高大上的词语仿佛让 NiFi 离我们越来越远. 实践是最好的老师.那就让我们试用一下 NiFi 吧! 二.安装 ...

  4. Cassandra安装和初次使用

    Cassandra安装和初次使用 卡珊德拉(Cassandra)又译卡桑德拉.卡珊卓,为希腊.罗马神话中特洛伊(Troy)的公主,阿波罗(Apollo)的祭司.因神蛇以舌为她洗耳或阿波罗的赐予而有预言 ...

  5. (转)python requests的安装与简单运用

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...

  6. MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)

    一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...

  7. python requests的安装与简单运用

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...

  8. memcache的windows下的安装和简单使用

    原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...

  9. 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用

    版本说明 使用当前版本:3.5.4 安装与启动 在官网上下载其Server二进制安装包,在Windows上的安装时简单的,与一般软件没什么区别. 安装前会提示你,还需要安装Erlang,并打开下载页面 ...

随机推荐

  1. Visual C++ 设置适合自己的解决方案目录结构

    Visual C++ 使用解决方案来管理项目,项目之间还可能有依赖关系,设置适合自己的解决方案目录结构,便于代码的管理.程序的发布. 下面开始一个虚拟解决方案设计:         假设此解决方案有应 ...

  2. 一个PHP数组能占多大内存

    最近用PHP读取一个大文件把相关数据存放到数组中,之后处理并输出, 读取过程中发现占用内存很大, 于是很好奇这个问题. 简单的写一个代码 <?php $m1 = memory_get_usage ...

  3. Android: 在 TextView 里使用删除线

    Android: 在 TextView 里使用删除线 分类: Android2014-09-25 13:17 3431人阅读 评论(0) 收藏 举报 以编程的方式添给 TextView 添加删除线: ...

  4. SQL Server 日期的加减函数: DATEDIFF DATEADD

    SQL Server 日期的加减函数: DATEDIFF    DATEADD DATEDIFF: 返回跨两个指定日期的日期边界数和时间边界数, 语法:DATEDIFF ( datepart , st ...

  5. Pop Sequence

    题目来源:PTA02-线性结构3 Pop Sequence   (25分) Question:Given a stack which can keep M numbers at most. Push ...

  6. 初识MariaDB存储引擎

    在看MariaDB的存储引擎之前,可以先了解MySQL存储引擎. MySQL常用的存储引擎: MyISAM存储引擎:是MySQL的默认存储引擎.MyISAM不支持事务.也不支持外键,但其访问速度快,对 ...

  7. DBA日常SQL之查询数据库运行状况

    ,) Day, ,),,)) H00, ,),,)) H01, ,),,)) H02, ,),,)) H03, ,),,)) H04, ,),,)) H05, ,),,)) H06, ,),,)) H ...

  8. 模型(modle)

    MVC模式三:模型操作数据库,之后注册变量于模板,之后用控制器的dispaly()方法显示; 一.跨控制器调用方法 因为控制器的实质是类,所以在该方法中造一个要调用的类的对象,调用他的方法; 比如,在 ...

  9. 【转】ODBC、OLE DB、 ADO的区别

    一.ODBC ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂商和 ...

  10. 一个平时写程序通用的Makefile样例

    //需要目标名和程序名字相同 .PHONY:clean all //伪目标 CC=gcc CFLAGS=-Wall -g BIN= //目标 all:$(BIN) %.o:%.c $(CC) $(CF ...