`
flyingandrunning
  • 浏览: 18880 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

cassandra入门应用一

阅读更多
cassandra应用步骤:
1.在http://cassandra.apache.org/下载cassandra保存相应目录中
2.cassandra进行解压,
     a.解压命令:gunzip apache-cassandra-0.6.8-bin.tar.gz。
    b.对tar解压:tar -vxf apache-cassandra-0.6.8-bin.tar。
3.进入apache-cassandra-0.6.8目录bin下 运行 Cassandra
..............................
INFO 10:49:48,282 Starting up server gossip
INFO 10:49:48,327 Binding thrift service to localhost/127.0.0.1:9160
INFO 10:49:48,331 Cassandra starting up...
出现这个表示cassandra启动成功。
对cassandra简单讨论
1.cassandra是什么?
  是基于k-v的是一种高伸缩性,的第二代数据库,用来存储数据
  参考blog:
           http://www.iteye.com/topic/784054
          http://www.iteye.com/topic/722859


cassandra简单示例

  /**
 * 
 */
[color=green]package org.wolf.cassandra;

import org.apache.cassandra.thrift.Column;
import org.apache.cassandra.thrift.ColumnPath;
import org.apache.cassandra.thrift.ConsistencyLevel;
import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.cassandra.thrift.NotFoundException;
import org.apache.cassandra.thrift.TimedOutException;
import org.apache.cassandra.thrift.UnavailableException;
import org.apache.cassandra.thrift.Cassandra.Client;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;

import com.sun.org.apache.bcel.internal.generic.NEW;

/**
 * cassandra 结构分为 server client
 * 
 * @author wolf * 
 */
public class CassandraDevelop {

	/**
	 *cassandra 客户端
	 */
	private Client cassClient;

	/**
	 * 连接协议,I/O layer,对 Java input/output streams 一个包装,其实现方式有 Tsocket,http等,
	 */
	private TTransport transport;

	private void initCassandra() throws TTransportException {
		String host = "localhost";
		int port = 9160;
		/* 指定服务器的地址和接口,以socket方式建立连接 */
		this.transport = new TSocket(host, port);
		/* 指定socket通讯协议为二进制流协议 */
		TBinaryProtocol binaryProtocol = new TBinaryProtocol(this.transport,
				false, false);
		this.cassClient = new Client(binaryProtocol);
		/* 建立通讯连接 */
		this.transport.open();

	}
	
	private void close(){
		this.transport.close();
	}

	/**
	 * 插入數字
	 * 
	 * @param tSpace
	 * @param tName
	 * @param rPara
	 * @param cName
	 * @param cValue
	 * @throws TException
	 * @throws TimedOutException
	 * @throws UnavailableException
	 * @throws InvalidRequestException
	 */
	private void insertData(String tSpace, String tName, String rPara,
			String cName) throws InvalidRequestException, UnavailableException,
			TimedOutException, TException {

		ColumnPath col = new ColumnPath(tName);
		col.setColumn(cName.getBytes());
		/**
		 * 执行插入操作,指定keysapce, row, col, 和数据内容, 后面两个参数一个是timestamp,
		 * 另外一个是consistency_level timestamp是用来做数据一致性保证的,
		 * 而consistency_level是用来控制数据分布的策略,前者的理论依据是bigtable, 后者的理论依据是dynamo
		 */
		this.cassClient.insert(tSpace, rPara, col,
				"using cassandra".getBytes(), System.currentTimeMillis(),
				ConsistencyLevel.ONE);
	}

	/**
	 * 获取列
	 * 
	 * @param tSpace
	 * @param tName
	 * @param rowParam
	 * @param colName
	 * @return
	 * @throws TException
	 * @throws TimedOutException
	 * @throws UnavailableException
	 * @throws NotFoundException
	 * @throws InvalidRequestException
	 */
	public Column getColumn(String tSpace, String tName, String rowParam,
			String colName) throws InvalidRequestException, NotFoundException,
			UnavailableException, TimedOutException, TException {
		ColumnPath col = new ColumnPath(tName);
		col.setColumn(colName.getBytes());
		/**
		 * 执行查询操作,指定keysapce, row, col, timestamp timestamp是用来做数据一致性保证的,
		 * 而consistency_level是用来控制数据分布的策略,前者的理论依据是bigtable, 后者的理论依据是dynamo
		 */
		return this.cassClient.get(tSpace, rowParam, col, ConsistencyLevel.ONE).column;
	}
	
	public static void main(String[] args) throws InvalidRequestException, UnavailableException, TimedOutException, TException, NotFoundException {
		CassandraDevelop cassandraDevelop = new CassandraDevelop();
		cassandraDevelop.initCassandra();
		String tSpace="Keyspace1";
		String row="employee";
		String tName="Standard2";
		cassandraDevelop.insertData(tSpace, tName, row, tName);
		
		Column column = cassandraDevelop.getColumn(tSpace, tName, row, "Standard2");
		System.out.println(new String(column.name));
		
	}
}[/color]	

分享到:
评论

相关推荐

    cassandra入门项目源代码

    【标题】:“Cassandra入门项目源代码”是一个针对初学者的教程项目,旨在帮助开发者了解如何在Eclipse环境中使用Spring Data框架与EasyRest风格来操作Cassandra数据库和Lucene搜索引擎。这个项目提供了一整套实践性...

    Nosql - Cassandra 入门学习

    【Cassandra 入门学习】 Cassandra是一款分布式NoSQL数据库系统,特别适合处理大量结构化和半结构化数据。它的设计灵感来源于Google的Bigtable,旨在提供高可用性、线性可扩展性和强一致性的数据存储解决方案。在...

    cassandra入门demo

    本篇文章将通过一个基础的"Cassandra入门demo",帮助你了解如何开始使用Cassandra。 **1. 安装与配置** 首先,你需要在本地或服务器上安装Cassandra。这通常涉及下载最新版本的Cassandra,解压并配置环境变量。...

    Apache Cassandra

    Apache Cassandra是一个开源的分布式NoSQL数据库管理系统,它最初由Facebook开发,并在...对于IT行业的专业人士来说,了解和掌握Cassandra是十分必要的,它已成为处理大数据和构建大规模互联网应用不可或缺的一部分。

    cassandra数据库

    Cassandra 数据库入门教程文档 Cassandra 是一种开源分布式 NoSQL 数据库系统,由 Facebook 开发,最初用于储存收件箱等简单格式数据。它集 Google BigTable 的数据模型与 Amazon Dynamo 的完全分布式架构于一身。...

    apache-cassandra-0.8.4-bin.tar.gz 分布式数据库

    1. **分布式架构**:Cassandra采用了无中心节点的分布式架构,每个节点都与其他节点对等通信,允许数据复制和负载均衡。这种设计使得系统能够容忍节点故障,保证服务的高可用性。 2. **一致性与可用性**:Cassandra...

    Cassandra-The-Definitive-Guide.pdf.rar_cassandra

    《Cassandra: The Definitive Guide》这本书详细介绍了这些概念,不仅适合初学者入门,也为经验丰富的开发者提供了深入理解和实践Cassandra的宝贵资源。通过阅读这本书,读者可以掌握如何构建、优化和管理大规模的...

    flask-cassandra:Python Flask Cassandra 简单店铺 CRUD

    烧瓶卡桑德拉Python Flask Cassandra Simple Shop CRUD 这是一个简单而说明性的 Cassandra Shop 应用程序的集合。 该集合的目的是帮助新的Cassandra用户更好地理解Cassandra并提出说明性的用例。入门如果您无权访问 ...

    java-cassandra-quickstart:Java 和 Cassandra 快速入门 (Astyanax + CQL)

    Java 和 Cassandra 快速入门是针对开发者的一个指南,旨在帮助他们快速掌握如何使用 Java 集成 Cassandra 数据库,特别是通过 Astyanax 客户端和 CQL(Cassandra 查询语言)进行操作。Cassandra 是一种分布式 NoSQL ...

    Cassandra_Workload_Extractor:Cassandra数据库上的流量洞察

    它会生成一个Excel电子表格,其中包含Cassandra集群中应用程序表的读写流量总计。 它还包括每个表的tps数据。 该脚本提供了群集事务总计,包括每月TPS,TPD和TPMO事务(356/12)。 它还包括总日志时间(包括所有...

    分享的spark简单的应用代码(入门级)

    这个压缩包文件包含了使用IDEA开发的Java和Scala语言的Spark入门级应用代码,非常适合初学者了解和学习Spark的基础操作。 首先,让我们从Java和Scala两个角度来理解Spark的基本概念和编程模型: 1. **Spark编程...

    cassandra_tornado_todo:在 2015 年 DePy 会议上给出的“Cassandra 和 Python 入门”演讲的示例代码。 该代码是一个简单的“待办事项”列表,使用 Tornado 来演示在 Python Web 应用程序中使用 Cassandra

    cassandra_tornado_todo 在 2015 年 DePy 会议上给出的“Cassandra 和 Python 入门”演讲的示例代码。 该代码用于使用 Tornado 的简单“待办事项”列表,以演示在 Python Web 应用程序中使用 Cassandra。

    NoSQL数据库入门 高清PDF

    根据提供的信息,我们可以推断出该文档主要围绕“NoSQL数据库入门”这一主题展开,并且它是一本高清PDF格式的学习指导书籍。尽管文档的部分内容似乎与Linux公社网站介绍有关,但我们的重点将放在提取与NoSQL数据库...

    云技术精髓入门级开发者认证

    这一章深入探讨了云环境中的存储解决方案,如对象存储、块存储和文件存储,以及它们在不同场景下的应用。此外,还将介绍云网络的基本概念,如VPC(Virtual Private Cloud)、子网、路由表和安全组,以及如何实现跨...

    storm入门 PDF 下载

    【标题】"Storm入门"指的是对Apache Storm这一分布式实时计算系统的初步学习和理解。Apache Storm是一个开源的流处理系统,它被设计用来处理和计算无界数据流,以实现连续的、实时的数据处理。在Java编程语言的支持...

    Spring从入门到精通_源代码.zip

    《Spring从入门到精通》是一本深度探讨Spring框架的书籍,由郭锋编著,并由清华大学出版社出版。这本书旨在帮助读者全面理解并掌握Spring的核心概念和技术,从基础的环境搭建到高级的应用场景,覆盖了Spring的...

    MongoDB入门篇1

    总的来说,MongoDB入门篇1涵盖了数据库和数据库管理系统的基础知识,特别是对于NoSQL数据库的介绍,有助于理解不同类型的数据库系统如何适应不同的应用场景。MongoDB作为一个流行的NoSQL数据库,特别适合于需要处理...

    大数据开发入门指南:从概念到实践应用讲解.zip

    大数据开发入门指南是一份全面介绍大数据领域的文档,涵盖了从基础概念到实际应用的各个环节,旨在帮助初学者系统地理解和掌握大数据技术。以下是这份指南中可能包含的重要知识点: 1. **大数据概念**:大数据指的...

Global site tag (gtag.js) - Google Analytics