Cassandra安装及其简单试用
官方主页:
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安装及其简单试用的更多相关文章
- Spark简介安装和简单例子
Spark简介安装和简单例子 Spark简介 Spark是一种快速.通用.可扩展的大数据分析引擎,目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL.Spark S ...
- {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...
- 『NiFi 学习之路』入门 —— 下载、安装与简单使用
一.概述 "光说不练假把式." 官网上的介绍多少让人迷迷糊糊的,各种高大上的词语仿佛让 NiFi 离我们越来越远. 实践是最好的老师.那就让我们试用一下 NiFi 吧! 二.安装 ...
- Cassandra安装和初次使用
Cassandra安装和初次使用 卡珊德拉(Cassandra)又译卡桑德拉.卡珊卓,为希腊.罗马神话中特洛伊(Troy)的公主,阿波罗(Apollo)的祭司.因神蛇以舌为她洗耳或阿波罗的赐予而有预言 ...
- (转)python requests的安装与简单运用
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...
- MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)
一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...
- python requests的安装与简单运用
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...
- memcache的windows下的安装和简单使用
原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...
- 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用
版本说明 使用当前版本:3.5.4 安装与启动 在官网上下载其Server二进制安装包,在Windows上的安装时简单的,与一般软件没什么区别. 安装前会提示你,还需要安装Erlang,并打开下载页面 ...
随机推荐
- PS要点
1.通道 意味着我们同过不同的角度来看图像,可以得到不同的图像信息,PS是以灰度图像来表现这种信息的强弱. 我们能看到什么取决于我们的视角.任何灰度图像都可以按照不同的规则来构成彩色图像. 通道除了能 ...
- Questions?
http://www.datastax.com/wp-content/themes/datastax-2014-08/files/NoSQL_Benchmarks_EndPoint.pdf http: ...
- oracle更新统计信息以及解锁统计信息
begin dbms_stats.unlock_table_stats(ownname => 'DM_MPAY', tabname => 'PLAT_INFO');end; begin d ...
- EDIUS工程里面的素材保存方法
在实际使用EDIUS剪辑一段视频时,会有好多人问这样一个问题:EDIUS工程里面使用的素材不能自动复制到工程文件夹里面吗,难道要自己一个一个复制进去?面对这样的疑问,来看看小编是如何做的吧. 为了用户 ...
- Web.Config文件中使用configSource
我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有会话(session)丢失.然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话 ...
- SignalR的安装
介绍 SignalR 是 ASP.NET 团队正在开发的一个 Microsoft .NET Framework 库和 jQuery 插件,可能包括在以后版本的 ASP.NET 平台中. 它提供了一些前 ...
- 木匠ing[索引]
古人有云,一个不会写代码的木匠不会是个好厨子. 为了响应这个号召,开始我的木工之路. 首先介绍一个网站,www.zuojiaju.com 木工爱好者 ,里面有大量的关于木匠的帖子,感谢一下. 以前只是 ...
- Storyboard 跳转 和 传值
因为苹果推 Storyboard 而且 目前来看, Apple Watch 也是用 Storyboard 就知道, 明天应用估计都是 Storyboard 的天下了. (水平有限, 不对之处在所难免, ...
- ANDROID中获取STRING.XML,DIMENS.XML等资源文件中的值
一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English),再运行程序时,android操作系统会根据用户手机的语言环境和国家 ...
- oracle 自定义异常处理
--第一种方式:使用raise_application_error抛出自定义异常declare i number:=-1;begin if i=-1 then raise_application_er ...