Cassandra简介

Cassandra简介

ID:40489077

大小:81.81 KB

页数:11页

时间:2019-08-03

Cassandra简介_第1页
Cassandra简介_第2页
Cassandra简介_第3页
Cassandra简介_第4页
Cassandra简介_第5页
资源描述:

《Cassandra简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、Cassandra横空出世近10年来,互联网得到了空前的发展,数据量翻了数百倍;同时互联网内容的创作方式也由传统的中心化逐步转向用户创作。网络应用的用户量数以亿记,需要处理的数据打到T级甚至是P级,传统的基于关系型数据库的应用难以应付超高的访问压力和超大的数据量。许多深有远见的网络公司分别研发了各自的分布式存储系统以应对互联网的发展;其中的先驱和代表是Google的Bigtable、GFS和Amazon的Dynamo;它们分别达到了互联网应用7×24的高可用性(HighAvailability)和水平可扩展(HighScalablity)要求,并成为Google和Amazon云计算

2、的可靠基石。Cassandra就是基于GoogleBigtable的数据模型和Dynamo的数据分布思想的开源实现。Cassandra最初是由Facebook开发的,后来开源,贡献给Apache,目前由apache开发和维护。二、Cassandra理论基础Cassandra的基因来自于Bigtable和Dynamo,而Bigtable和Dynamo都是基于著名的EricBrewer的CAP理论设计的。Brewer的CAP理论认为,在一个共享数据系统(数据分布式存储)里,最多只能获得数据一致性(C-consistency)、数据可用性(A-availability)、分区容忍性(P-pa

3、rtitiontolerance)中的两个特性。一致性(C)指的是当一个写操作完成后,后续的读操作都能够读到更新后的数据。可用性(A)指的是当某些存储节点失效时,客户端发起的读写请求仍然能够获取正确的响应,读写操作仍然有效。分区容忍性(P)指的是存储节点之间的网络连接断开后,存储系统仍然能够进行正常的读写操作,即系统对节点连接断开是能够容忍的。以oracleRAC为例,假如有两个RAC节点。Oracle作为业界牛b的关系型数据库,必然具有强一致性(C),因此它不可能同时具有可用性和分区容忍性,当其中一个rac节点失效了,整个rac集群的写入操作将不可用(否则会发生数据不一致,这是ora

4、cle不能容忍的),同样rac节点之间的网络阻断了,整个集群的写入操作也是不可用的,因此oraclerac为了保证其ACID(强一致性)牺牲了一定的可用性和分区容忍性。而互联网庞大的数据量和极高的峰值访问压力使得以增加内存、CPU等节点性能的垂直伸缩方案走入死胡同,使用大量廉价的机器组建水平可扩展集群成为绝大多数互联网公司的必然选择;廉价的机器失效是正常的,大规模的集群,节点之间的网络临时阻断也是常见的,因此在衡量一致性、可用性和分区容忍性时,往往倾向先满足后两者,再用其他方法满足最终的一致性。在衡量CAP时,bigtable选择了CA,用gfs来弥补P;dynamo选择了AP,C弱化

5、为最终一致性(通过Quorum或者read-your-write机制)。Cassandra吸取了bigtable和dynamo二者的优良基因。在数据模型上采用了Bigtable的基于列集(ColumnFamily)的模型;在数据的分布式存储上,采用了dynamo的模式,采用一致性哈希将数据散列在节点环上,节点数据的复制采用隐式传送(HintedHandoff)的方式,节点成员和节点错误探测采用称为Gossip的协议。正是这样,Cassandra获得了高可用、高伸缩(水平扩展)特性,并提供了客户端可控的分级一致性,使得其可应用场景更加丰富。三、Cassandra安装、启动与配置安装、启动

6、与停止:Cassandra是用java开发的,因此安装启动非常简单,只要你有jvm(1.6版本以上)即可。1.从官方网站下载Cassandra最新版本(0.7);2.解压,执行$CASSANDRA_HOME/bin/cassandra-f-ppid;-f参数表示强制让cassandra进程在前台执行,可实时观察到cassandra的控制台输出;-p表示让cassandra启动后将进程标志(pid)写入到指定的文件中(方便杀进程);3.$CASSANDRA_HOME/bin/cassandra-f-ppid4.加载keyspaces配置;从0.7版本开始,cassandra启动时不会加载

7、配置文件($CASSANDRA_HOME/conf/cassandra.yaml)里keyspaces定义,需要手工加载,加载命令为:5.$CASSANDRA_HOME/bin/schematoollocalhost9160import6.用cli客户端连接Cassandra服务器;Cassandra提供了控制台命令行客户端程序($CASSANDRA_HOME/bin/cassandra-cli),可通过该程序访问cassandra服务器,进行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。