`
genius_bai
  • 浏览: 81735 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

Cassandra

下载

http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.5.1/apache-cassandra-0.5.1-bin.tar.gz

 

apache-cassandra-0.5.1自带的hector-0.5.0-7.jar有严重的性能问题,需要修改成hector-0.5.1-9.jar

 

资源

http://cassandra.apache.org/

http://wiki.apache.org/cassandra/FrontPage

 

 

部署

http://kauu.net/2010/02/27/cassandra%E5%88%9D%E4%BD%93%E9%AA%8C/

 

192.168.2.79

/home/bmb/apache-cassandra-0.5.1

 

 

DataModal设计

l  对同一行的所有列,可以定义根据列名的排序规则(即保存规则)。当保存某个用户相对应的朋友的时候,可以用朋友的加入时间作为一个一个的列名,列按照时间倒序拍。这样很容易获得用户最新的朋友。

测试,Keyspace1Standard1的列按照BytesType进行排序,不管按照什么set顺序,get_slice都会获得,a,b,c的顺序

<ColumnFamily CompareWith="BytesType" Name="Standard1" />

set Keyspace1.Standard1['jsmith']['c'] = 'c'

set Keyspace1.Standard1['jsmith']['a'] = 'a'

set Keyspace1.Standard1['jsmith']['b'] = 'b'

 

l  Super columns

Super columns are a great way to store one-to-many indexes to other records: make the sub column names TimeUUIDs (or whatever you'd like to use to sort the index), and have the values be the foreign key.

不如某个用户的好友,Sub column name是好友加入时间,Sub column value是好友的ID,可以作为外键关联好友的信息表。

l  复合Key可以等效Super Columns,列名为时间

Alternatively, we could preface the status keys with the user key, which has less temporal locality. If we used user_id:status_id as the status key, we could do range queries on the user fragment to get tweets-by-user, avoiding the need for a user_timeline super column.

l  In column-orientation, the column names are the data

l  列名TimeUUID,列值JSON格式,可以解决一些问题

l   

 

http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/

Twitter怎样使用Cassandra,TwitterData Model,BlogData Model

http://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model

Digg提供的一个完整例子

http://wiki.apache.org/cassandra/DataModel

http://wiki.apache.org/cassandra/CassandraLimitations

http://www.hellodba.net/2010/02/cassandra.html

(中文翻译,有出入)介绍TwitterData Modal,有借鉴意义

 

 

修改Schema定义,2次重启

https://issues.apache.org/jira/browse/CASSANDRA-44

动态创建Column Falimy,在不重启服务器下

http://github.com/NZKoz/cassandra_object

 

启动单个节点的Cluster

安装JDK 6

   tar -zxvf cassandra-$VERSION.tgz

   cd cassandra-$VERSION

   sudo mkdir -p /var/log/cassandra

   sudo chown -R `whoami` /var/log/cassandra

   sudo mkdir -p /var/lib/cassandra

   sudo chown -R `whoami` /var/lib/cassandra

修改/bin/cassandra.in.sh里面的启动端口(-Dcom.sun.management.jmxremote.port=8080

bin/cassandra -f

查看日志

tail -f /var/log/cassandra/system.log

客户端连接

cd /home/bmb/apache-cassandra-0.5.1

bin/cassandra-cli --host 192.168.2.79  --port 9160

 

  cassandra> set Keyspace1.Standard1['jsmith']['first'] = 'John'

  Value inserted.

  cassandra> set Keyspace1.Standard1['jsmith']['last'] = 'Smith'

  Value inserted.

  cassandra> set Keyspace1.Standard1['jsmith']['age'] = '42'

  Value inserted.

  cassandra> get Keyspace1.Standard1['jsmith']

    (column=age, value=42; timestamp=1249930062801)

    (column=first, value=John; timestamp=1249930053103)

    (column=last, value=Smith; timestamp=1249930058345)

  Returned 3 rows.

  cassandra>

Java 客户端

l  原始Thrift

http://apache.freelamp.com/incubator/thrift/0.2.0-incubating/thrift-0.2.0-incubating.tar.gz

封装

http://github.com/charliem/OCM

 

手动编译Java  Thrift

cd D:\7g\Personal\Resources\Architecture\Cassandra\thrift-0.2.0\lib\java

ant

 

l  hector

http://prettyprint.me/2010/02/23/hector-a-java-cassandra-client/

http://github.com/rantav/hector/downloads

 

l  OCM

http://github.com/charliem/OCM/downloads

 

 

 

Git

下载Git

http://kernel.org/pub/software/scm/git/git-1.7.0.3.tar.gz

安装

cd /home/bmb/apache-cassandra-0.5.1/git-1.7.0.3

./configure

make

make install

 

Git客户端

http://msysgit.googlecode.com/files/msysGit-fullinstall-1.7.0.2-preview20100309.exe

D:\7g\Personal\Resources\Architecture\Cassandra\msysgit\msysgit\ git-cmd.bat

Check out OCM

git clone http://github.com/charliem/OCM.git

 

 

http://tortoisegit.googlecode.com/files/TortoiseGit-1.3.6.0-32bit.msi

 

 

 

集群配置

http://pan-java.iteye.com/blog/604672

 

192.168.5.11

/u/iic/bmb/apache-cassandra-0.5.1

修改conf下面的文件

/var/log/cassandra/u/iic/bmb/apache-cassandra-0.5.1/log

/var/lib/cassandra/u/iic/bmb/apache-cassandra-0.5.1/log

修改bin/cassandraJava_home

export JAVA_HOME=/u/iic/bmb/jdk6

 

 

192.168.5.12 (目录配置同5.11,都以2.79Seed)

注意:部署集群的时候,不能把5.11整个目录搬到5.12上,不然他们Token一样,会导致Ring5.115.12重复。解决方法:删除datacommit目录。

还有所有的IP必须配置成绝对IP,如果配Localhost,会使Ring不完整

 

192.168.2.79

/home/bmb/apache-cassandra-0.5.1

 

bin/cassandra -f

 

OCM的使用

l  定义数据结构:D:\7g\Personal\Resources\Architecture\Cassandra\Client\OCM Compiler\OCMSpecSample.txt

l  通过com.kissintellignetsystems.ocm.compiler.Compiler类,提供以下的命令行参数,生成Java对象:"OCMSpecSample.txt", "keyspace1", "Java",

                "mynamespace", "output/"

l  测试例子:D:\7g\Personal\Resources\Architecture\Cassandra\Client\Output Languages\Java\TestHarness

CreatTest.java

 

 

get keyspace1.Users['charlie']

bin/cassandra-cli --host 192.168.2.79  --port 9160

bin/cassandra-cli --host 192.168.5.11  --port 9160

bin/cassandra-cli --host 192.168.5.12  --port 9160

 

 

 

 

查看集群的节点信息

bin/nodeprobe -host localhost -port 8090 ring

 

Hadoop & Cassandra

using Hadoop to Cassandra through Binary Memtable

http://github.com/lenn0x/Cassandra-Hadoop-BMT/blob/master/src/java/org/digg/CassandraBulkLoader.java

 

http://blog.csdn.net/wdwbw/archive/2010/03/10/5366739.aspx

http://www.roadtofailure.com/2009/10/29/hbase-vs-cassandra-nosql-battle/

 

Lucene + Cassandra

Lucandra

 

 

分享到:
评论

相关推荐

    Cassandra(apache-cassandra-3.11.11-bin.tar.gz)

    Cassandra(apache-cassandra-3.11.11-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...

    cassandra-3.11.3下载

    Cassandra是一款分布式、高度可扩展的NoSQL数据库系统,由Facebook于2008年开源,并在随后被Apache软件基金会接纳为顶级项目。Cassandra的设计灵感来源于Google的Bigtable,旨在处理大规模的数据存储需求,特别适合...

    apache-cassandra-3.11.13

    Apache Cassandra 是一个分布式数据库系统,特别设计用于处理大规模数据,具备高可用性、线性可扩展性和优秀的性能。在这个"apache-cassandra-3.11.13"版本中,我们探讨的是Cassandra项目的其中一个稳定版本,它包含...

    Learning_Apache_Cassandra

    在本文档中,标题“Learning_Apache_Cassandra”透露了内容的主题,即学习Apache Cassandra。Cassandra是一个开源的NoSQL分布式数据库管理系统,它以高可用性和分布式架构著称。该书详细介绍了Cassandra的基本概念、...

    spring boot与cassandra集成,使用JPA方式。

    在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用Java Persistence API (JPA) 进行数据操作。Spring Boot以其简洁的配置和开箱即用的特性,已经成为Java开发中的首选框架之一。而...

    Cassandra的数据模型介绍

    amily 是 Cassandra 数据模型的核心组成部分,用来组织和管理 Column 和 SuperColumn。在 Cassandra 中,一个 ColumnFamily 相当于传统数据库中的表,但它不遵循严格的行与列的关系,而是以键值对的形式存储数据,...

    cassandra3.9配置参数说明

    Apache Cassandra是一种高性能的分布式NoSQL数据库管理系统,适用于大规模数据存储。Cassandra 3.9版本是对之前版本的一系列改进,包括对配置文件参数的增强。配置文件是Cassandra的核心部分,其中包含了控制集群...

    DevCenter cassandra客户端

    DevCenter 是一个强大的工具,专为数据科学家、开发人员和管理员设计,用于与Apache Cassandra数据库进行交互。这个工具提供了一个直观的用户界面,使得管理、查询和开发Cassandra数据库变得简单易行。Cassandra是一...

    Cassandra_概要指南

    ### Cassandra概要指南 #### 一、Cassandra的诞生与背景 Cassandra作为一个高可靠性的大规模分布式存储系统,它的诞生背景源于互联网Web2.0应用的飞速发展以及云计算技术的普及。随着用户数据量的爆炸性增长和对...

    Cassandra在饿了么的应用

    标题中提到的"Cassandra在饿了么的应用"意味着文章将讨论Apache Cassandra这个大规模分布式NoSQL数据库系统在著名的中国本地生活服务平台饿了么中的实际应用案例。描述中重复多次提及"Cassandra",这表明主题将专注...

    基于Cassandra的实时气象数据分布式存储系统.pdf

    "基于Cassandra的实时气象数据分布式存储系统" 本文主要介绍了基于Cassandra的实时气象数据分布式存储系统的设计和实现。该系统采用Cassandra作为分布式存储解决方案,旨在满足气象数据存储的高可用性和性能要求。 ...

    Mastering.Apache.Cassandra.2nd.Edition.1784392618

    Title: Mastering Apache Cassandra, 2nd Edition Author: Nishant Neeraj Length: 322 pages Edition: 2 Language: English Publisher: Packt Publishing Publication Date: 2015-02-27 ISBN-10: 1784392618 ISBN-...

    Cassandra(apache-cassandra-4.0.1-bin.tar.gz)

    Cassandra(apache-cassandra-4.0.1-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...

    ycsb cassandra 压力测试工具

    **ycsb cassandra 压力测试工具** YCSB(Yahoo! Cloud Serving Benchmark)是 Yahoo 开源的一个云服务性能基准测试工具,它主要用于评估分布式数据库、键值存储和其他云服务的性能。Cassandra 是一个分布式NoSQL...

    java NoSql Cassandra hector

    Java NoSQL Cassandra Hector详解 在当今大数据时代,非关系型数据库(NoSQL)因其灵活性、高可扩展性和高性能,越来越受到开发者的青睐。Cassandra,作为NoSQL数据库家族中的重要一员,尤其在大规模分布式存储系统...

    cassandra cli 命令 大全

    Cassandra CLI是Apache Cassandra数据库系统的一个命令行工具,它提供了与Cassandra集群交互的能力,包括连接到远程节点、创建或更新模式(schema)、设置和检索记录及列,以及查询节点和集群元数据。这个工具主要...

    Cassandra实战.pdf

    在深入探讨《Cassandra实战.pdf》这一资源时,我们聚焦于Apache Cassandra数据库系统的全面解析与实践应用,这是一份详尽的技术文档,旨在为数据库管理员、开发者以及对分布式数据库技术感兴趣的专业人士提供深入...

    Java连接cassandra实现简单的增删查demo

    在Java编程环境中,连接Cassandra数据库并实现基本的增、删、查操作是常见的任务。Cassandra是一款分布式NoSQL数据库,常用于处理大规模数据。在这个示例中,我们将探讨如何通过Java来操作Cassandra数据库。 首先,...

Global site tag (gtag.js) - Google Analytics