Windows环境下安装Cassandra1.0.2

以Cassandra 1.0.2为例。java

一、 安装文件准备

下载Cassandra1.0.二、Jdk 1.7。(所有推荐最新版本)
Cassandra下载地址:http://cassandra.apache.org/download/
Jre下载地址:http://www.java.com/zh_CN/download/node

二、安装JDK、Cassandra

(一)、安装Jdk的过程很简单,这里不作说明。数据库

(二) 解压缩后得到目录apache-cassandra-1.0.2apache

(三)、配置JDK、Cassandra系统环境变量api

一、配置JDK系统环境变量工具

二、配置Cassandra系统环境变量测试

三、将cassandra系统环境变量添加到JDK环境变量中spa

三、配置Cassandra

(1)修改其它地址.net

打开文件:cassandra.yaml,修改:code

data_file_directories: - D:\apache-cassandra-1.0.2\data

commitlog_directory: D:\apache-cassandra-1.0.2\commitlog

saved_caches_directory: D:\apache-cassandra-1.0.2\saved_caches

修改后的样子以下:

data_file_directories:
    - F:\javadevelop\service\casssandra\apache-cassandra-1.0.2\data

commitlog_directory: F:\javadevelop\service\casssandra\apache-cassandra-1.0.2\commitlog

saved_caches_directory: F:\javadevelop\service\casssandra\apache-cassandra-1.0.2\saved_caches

四、启动

(1)在命令提示符工具中启动Cassandra:

(2)用nodetool工具确认Cassandra已经启动:

五、测试

(1)运行cassadnra-cli:

(2)建立keyspace、column family,插入数据:

(3)获取数据:

能够正常执行,说明安装成功。

六、Java客户端代码

(1)、建立java项目的过程很简单,这里不作说明。

(2)、将F:\javadevelop\service\casssandra\apache-cassandra-1.0.2\lib目录下的jar所有拷贝到WEB-INF/lib目录下;

(3)、建立客户端java类,code以下:

package com.tzdr.api.controller;

import org.apache.cassandra.thrift.*;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.List;
public class CassandraExample {

    public static void main(String[] args)
            throws TException, InvalidRequestException, UnavailableException, UnsupportedEncodingException, NotFoundException, TimedOutException {
        TTransport tr = new TFramedTransport(new TSocket("localhost", 9160));
        TProtocol proto = new TBinaryProtocol(tr);
        Cassandra.Client client = new Cassandra.Client(proto);
        tr.open();
 
        String key_user_id = "jsmith";     //row id
 
        client.set_keyspace("tzdrdevelop");     //指定keyspace
        ColumnParent parent = new ColumnParent("User");
        ColumnPath path = new ColumnPath("User");
 
        // 读取单列内容
        path.setColumn(toByteBuffer("first"));
        ColumnOrSuperColumn col = (client.get(toByteBuffer(key_user_id), path, ConsistencyLevel.ONE));
        System.out.println(toString(col.column.name) + " -> " + toString(col.column.value));
 
        // 读取所有列内容
        SlicePredicate predicate = new SlicePredicate();
        SliceRange sliceRange = new SliceRange(toByteBuffer(""), toByteBuffer(""), false, 10);
        predicate.setSlice_range(sliceRange);
 
        List<ColumnOrSuperColumn> results = client.get_slice(toByteBuffer(key_user_id), parent, predicate, ConsistencyLevel.ONE);
        for (ColumnOrSuperColumn result : results) {
            Column column = result.column;
            System.out.println(toString(column.name) + " -> " + toString(column.value));
        }
        // 向数据库中插入数据
        long currentTimeMillis = System.currentTimeMillis();
        long nanoTime = System.nanoTime();
        long currentTimeMicros = currentTimeMillis * 1000 + nanoTime / 1000 - (nanoTime > 1000000 ? (nanoTime / 1000000) * 1000 : 0);
 
    //注意取microseconds,而不是milliseconds,由于其它客户机都是microseconds。
    //若是使用System.currentTimeMillis()致使你的时间永远小于其它客户机的时间,使其操做会被忽略。
        System.out.println(currentTimeMicros);
 
        String new_key_user_id = "jsmith";     //row id
 
        Column nameColumn = new Column(toByteBuffer("name"));
        nameColumn.setValue(toByteBuffer("Chris Goffinet"));
        nameColumn.setTimestamp(currentTimeMicros);
        client.insert(toByteBuffer(new_key_user_id), parent, nameColumn, ConsistencyLevel.ONE);
 
        Column pwdColumn = new Column(toByteBuffer("password"));
        pwdColumn.setValue(toByteBuffer("12345678"));
        pwdColumn.setTimestamp(currentTimeMicros);
        client.insert(toByteBuffer(new_key_user_id), parent, pwdColumn, ConsistencyLevel.ONE);
 
        tr.flush();
        tr.close();
    }
 
    public static ByteBuffer toByteBuffer(String value)
            throws UnsupportedEncodingException {
        return ByteBuffer.wrap(value.getBytes("UTF-8"));
    }
 
    public static String toString(ByteBuffer buffer)
            throws UnsupportedEncodingException {
        byte[] bytes = new byte[buffer.remaining()];
        buffer.get(bytes);
        return new String(bytes, "UTF-8");
    }

}

相关文章
相关标签/搜索