分布式数据库的应用---cassandra
Cassandra项目的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其它节点上,对Cassandra的读操作,也会被路由到某个节点上面去读取.对于一个Cassandra集群来说,扩展性能比较简单,直管在集群里面添加节点就可以了.有文章说Facebook的Cassandra集群有超过100台服务器构成的数据库集群.
Cassandra也支持比较丰富的数据结构和功能强大的查询语言,和MongoDB比较类似,查询功能比MongoDB稍弱一些.Cassandra以单个节点来衡量,其节点的并发读写性能不是特别好,有文章评测下来Cassandra每秒大约不到1万次读写请求,真实的风不是数据库访问系统必然是N多个节点构成的系统,其并发性能取决于整个系统的节点数量,路由效率,而不仅仅是但节点的并发负载能力.
cassandra是高可扩展性的第二代分布式数据库,如果想充分掌握和了解cassandra背后的理论,需要掌握amazon的dynamo和google bigtable.
学习一个陌生的技术,最重要的一步就是将其运行起来,运行之后再根据sample来分析其数据模型,然后再逐一研究整个系统模型的实现.
1)下载cassandra:
下载地址:
http://incubator.apache.org/cassandra/,目前最新的beta版本是0.6.3
2)解压并安装cassandra:
将下载的压缩包解压,我本机解压的位置是E:\tools\数据库\apache-cassandra-0.6.3;
修改conf目录下的配置文件log4j.properties;
log4j.appender.R.File=d:\\temp\\cassandra\\system.log
修改conf目录下的配置文件storage-conf.xml;
<CommitLogDirectory>d:\\temp\\cassandra\\commitlog</CommitLogDirectory>
<DataFileDirectories>
<DataFileDirectory>d:\\temp\\cassandra\\data</DataFileDirectory>
</DataFileDirectories>
设置系统的环境变量:
JAVA_HOME=D:\server\jdk1.6
CASSANDRA_HOME=E:\tools\数据库\apache-cassandra-0.6.3
启动Cassandra服务:
进入命令行模式下Cassandra的安装目录,执行bin目录下的cassandra.bat,待界面进入到 "INFO 14:28:41,343 Starting up server gossip",那么恭喜你,启动成功了!
3)进入到Cassandra命令模式,进行一下交互测试:
在命令行模式下执行bin目录下的Cassandra-cli.bat,将会进入到Cassandra交互模式;
cassandra> connect localhost/9160
Connected to: "Test Cluster" on localhost/9160
参考随压缩包附带的readme文档,参照范例提供测试如下:
cassandra> set Keyspace1.Standard2['employee']['name']='li'
Value inserted.
cassandra> set Keyspace1.Standard2['employee']['job']='programmer'
Value inserted.
cassandra> set Keyspace1.Standard2['employee']['age']='31'
Value inserted.
cassandra> get Keyspace1.Standard2['employee']
=> (column=name, value=li, timestamp=1280042422312000)
=> (column=job, value=programmer, timestamp=1280042539578000)
=> (column=age, value=31, timestamp=1280042724312000)
Returned 3 results.
小结一下:
cassandra的配置还是比较简单的,配置文件storage-conf.xml中描述当前分布式数据系统所需的一些配置关系,结合上面的语句我们可以理解这种对应关系:
set Keyspace1.Standard2['employee']['name'] = 'li'
\ \ \ \ \
\ \ \_ key \ \_ value
\ \ \_ column
\_ keyspace \_ column family
:此节点可以认为是数据库名称,我们称为"空间"名称.
Standard2表示为列式存贮的结构名称.
对Cassandra的理解和分析暂时只能达到这个层次,稍后会通过代码继续带给大家更多的细节和代码结构,我们会持续揭开Cassandra神秘的面纱.
分享到:
相关推荐
本项目采用Java语言实现了一个分布式数据库系统,利用RMI(Remote Method Invocation)技术搭建C/S(Client/Server)架构,实现了客户端与服务器端的远程通信。 首先,我们要理解什么是Java RMI。RMI是Java平台提供...
### 分布式环境的搭建与多节点的搭建 ...随着数据量的不断增加,分布式系统的设计与实现变得越来越重要,而 Apache Cassandra 作为一种优秀的分布式数据库解决方案,正逐渐成为许多大型项目的首选工具。
【分布式数据库在银行应用的关键点】\n\n随着互联网金融的发展,银行传统的集中式数据库面临着巨大的挑战,尤其是在处理高并发、大数据量的交易场景时,其性能和扩展性显得捉襟见肘。分布式数据库作为应对这些问题的...
- 分布式数据库:探讨分布式数据库如HBase、Cassandra的设计,以及它们如何解决大数据存储和查询问题。 - 分布式文件系统:理解Hadoop的HDFS,它的副本策略和故障恢复机制。 - Key-Value存储:介绍如Redis、...
Titan 是一个在服务器集群搭建的分布式的图形数据库,特别为存储和处理大规模图形而优化。集群很容易扩展以支持更大的数据集,Titan有一个很好的插件式性能,这个性能让它搭建在一些成熟的数据库技术上像 Apache ...
Cassandra是一款开源的分布式NoSQL数据库系统,最初由Facebook开发,旨在为诸如收件箱这样的简单格式数据提供高效的存储解决方案。随着技术的发展,Cassandra凭借其出色的可扩展性和容错能力,逐渐成为一种广受欢迎...
- 分布式数据库如Cassandra、HBase,可以处理大规模数据并提供高可用性。 - 一致性算法如Paxos、Raft,用于保证分布式环境中的数据一致性。 6. **分布式计算** - Hadoop和Spark等框架用于大数据处理,它们支持...
- **Redis简介**:Redis是一种基于内存的NoSQL数据库,使用C语言编写,支持多种数据结构,如字符串(Strings)、散列(Hashes)、列表(Lists)、集合(Sets)以及有序集合(Sorted Sets)等。 - **应用场景**: - **缓存**...
【vagrant-cassandra-cluster】是一个基于Vagrant的项目,用于快速搭建Cassandra分布式数据库集群的开发和测试环境。Vagrant是一款流行的开源工具,它允许开发者在本地创建和管理虚拟机环境,确保一致性和可重复性。...
3. **Cassandra**: Apache Cassandra是一款分布式NoSQL数据库系统,适合处理大规模数据。它以高可用性、线性可扩展性和无单点故障的设计理念而闻名。Cassandra适用于需要处理大量实时读写操作的应用,如日志分析、...
本项目“基于Spring Cloud分布式物联网(IOT)平台源码”旨在提供一个完整的解决方案,帮助开发者理解和实践如何利用Spring Cloud构建一个高效、可扩展的IoT平台。 首先,我们需要理解Spring Cloud的核心组件及其在...
8. **分布式数据库和NoSQL**:如MongoDB、Cassandra等,用于处理海量非结构化数据。 9. **云计算平台**:如Amazon AWS、Microsoft Azure或Google Cloud Platform,提供分布式计算服务,学生可能需要学习如何在这些...
1. **Cassandra**:Apache Cassandra是一个分布式的NoSQL数据库系统,设计用于处理大规模数据,提供高可用性和水平扩展性。Cassandra的数据模型适合时间序列数据和键值对存储,它支持多数据中心复制,确保低延迟的...
Cassandra是一款开源的分布式NoSQL数据库系统,最初由Facebook开发,主要用于处理简单的数据格式,如邮箱信息等。随着时间的发展,因其良好的可扩展性和分布式特性,Cassandra逐渐成为了一种广泛应用于各种场景下的...
Cassandra是一个开源的分布式NoSQL数据库管理系统,由Apache软件基金会开发。它的设计目的是处理大量的跨多个数据中心的数据。Cassandra具有高可用性、灵活的复制策略、以及分布式的可扩展性,使其成为需要处理大量...
【jersey-cassandra-archetype】是一个用于快速搭建基于Java的、使用Cassandra数据库的RESTful API服务的Maven原型项目。这个项目主要是为开发者提供一个起点,让他们能够轻松地创建一个集成Cassandra数据存储的...
4. 分布式数据存储:介绍分布式数据库如HBase、Cassandra,以及NoSQL和NewSQL的概念。 5. 分布式一致性与事务:探讨CAP理论、Paxos算法、Raft协议,以及2PC、TCC等分布式事务解决方案。 6. 分布式缓存:讲述Redis、...
### Apache Cassandra 2.06 集群配置详解 #### 一、基础知识与概念 Cassandra 是一款分布式、去中心化的 NoSQL 数据库系统,主要用于处理大...通过上述步骤,可以搭建一个稳定可靠的 Cassandra 分布式数据库集群。
非关系型数据库(NoSQL,Not Only SQL)是一种不同于传统的关系型数据库的数据存储模型,它在处理大量数据、高并发和分布式系统中表现优异。NoSQL数据库的主要特点包括灵活性、可扩展性和高性能,它们通常不支持SQL...