快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡新京是真的吗:facebookde 的 NoSQL数据库cassandra的配置与调用(javaampampc)



上次说了安装的问题,可以参考《VirtualBox 虚拟机 Debian系统上安装Cassandra步骤及碰到的问题》。当然,在windows下也可以应用,然则要设置JAVA_HOME参数,然后启动目录bin里的cassandra.bat。编辑cassandra.bat看到

if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%CD%

改成

if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=F:\apache-cassandra-0.5.1

“F:\apache澳门新葡新京是真的吗-cassandra-0.5.1”是我澳门新葡新京是真的吗的安装目录。

一、cassandra的单节点办事器设置设置设备摆设摆设

先说下cassandra的设置设置设备摆设摆设,照样讲Linux下的。必要设置设置设备摆设摆设的文件一共有三个,当然,也可以应用默认设置设置设备摆设摆设。

这个三个文件分手是:

bin/cassandra.in.sh

conf/log4j.properties

conf/storage-conf.xml

此中,log4j.properties这天志的设置设置设备摆设摆设,其它两个是设置设置设备摆设摆设的运行情况。

cassandra.in.sh文件一样平常不必要调剂,当然,加入你没有应用alternatives调剂java的默认情况,而你又必要应用jre6.0,这种环境下,可以设置cassandra.in.sh中

#JAVA_HOME=/usr/local/jdk6

JAVA_HOME=/usr/local/jre6#这里是你的jre解压缩的路径

log4j.properties的设置设置设备摆设摆设网上讲的很多,就不说了。

storage-conf.xml的设置设置设备摆设摆设是最紧张的。

第一个是Keyspaces,这个默认只设置了Keyspace1,可以增添别的的Keyspaces。客户端调用必要应用这个名字。

Keyspace节点中的KeysCachedFraction设置的键索引的内存大年夜小。阐明上也写了,要是键的数量较少,长度较长,可以增添这个值。而设置为0,则是禁用。

接下来是设置ColumnFamily,这里设置设置设备摆设摆设的名称,在客户端调用时刻也如果有。别的还指定了列的类型。

ReplicationFactor设置了副本的数目,这个是在散播式支配中有用,维持数据的冗余,以至于某几台办事坏掉落,能包管数据完备。

CommitLogDirectory以及接下来的几行都是设置目录的,这个就不说了。

Seeds也是和分支配主从办事器支配要领有关的,本文不准备讲这个。

ThriftAddress是对照紧张的,这个是设置客户端造访的,而ThriftPort是设置造访的端口。接下来的部分是和机能有关的,这些阐明可以仔细涉猎。贫道对下面的设置也理解不深入,就不献丑了。

二、若何编程造访cassandra

从http://incubator.apache.org/cassandra/找了良久,找到了http://github.com/rantav/hector(java)。这个是一个造访cassandra的包装。很遗憾的是,我应用这个包装造访时刻,读取一个Key的值必要7~8秒!!!晕倒。我开始以为是虚拟机的缘故原由,结果支配到其他两台linux办事器上照样一样。当然这些机械和我的机械都不在同一个网段,我不知道这点是不是会对机能有很大年夜的影响。后来,我放到自己机械上,以及把写好的法度榜样当道目标机械上,读取速率变成了20MS每条。机能相差也太大年夜了。一个是速率慢得和蚂蚁一样,而第二次则是坐上乌龟了。

其它说话的造访包装可以在http://wiki.apache.org/cassandra/ClientExamples 这里找到。当然,没有C#的。

三、用C#和Java造访cassandra

cassandra用到了别的一个好用的器械:thrift。这个东东可以在http://www.thrift-rpc.org/下载。

详细在http://www.thrift-rpc.org/?p=thrift.git;a=shortlog;h=refs/misc/instant,一样平常点第一个snapshot就行了,这是最新的。版本几个小时更新一个,太牛叉了。

下载完后,搞到Linux上,解压。进入目录落后行安装。

#chmod +x *//设置履行权限

#./bootstrap.sh

#./configure

#make

#make install

安装好了,接下来,开始天生操作。

切换到cassandra的interface目录。

然后,应用/home/xieping/thrift/ompiler/cpp/thrift -gen csharp cassandra.thrift 敕令天生。运行该敕令后,在interface目录增添了gen-csharp目录。把它搞到你的机械,然后,切换到/home/xieping /thrift/lib/csharp目录。把src目录搞下来。打开Thrift.csproj文件,右键Thrift项目,设置编译符号为 NET_2_0。新建个C#项目,把gen-csharp目录下的器械添加进去,然后,引用Thrift项目,就可以写以下代码调用:

using System;

using Thrift.Transport;

using Thrift.Protocol;

using Apache.Cassandra;

namespace TestCa {

class Program {

static void Main(string[] args) {

TTransport transport = new TSocket("192.168.93.30", 9160);

TProtocol protocol = new TBinaryProtocol(transport);

Cassandra.Client client = new Cassandra.Client(protocol);

transport.Open();

System.Text.Encoding utf8Encoding = System.Text.Encoding.UTF8;

long timeStamp = DateTime.Now.Millisecond;

ColumnP澳门新葡新京是真的吗ath nameColumnPath = new ColumnPath() {

Column_family = "Standard1",

Column = utf8Encoding.GetBytes("name")

};

client.insert("Keyspa澳门新葡新京是真的吗ce1",

"1",

nameColumnPath,

utf8Encoding.GetBytes("测试输入1"),

timeStamp,

ConsistencyLevel.ONE);

client.insert("Keyspace1",

"2",

nameColumnPath,

utf8Encoding.GetBytes("测试输入2"),

timeStamp,

ConsistencyLevel.ONE);

ColumnOrSuperColumn returnedColumn = client.澳门新葡新京是真的吗get("Keyspace1", "1", nameColumnPath, ConsistencyLevel.ONE);

Console.WriteLine("Keyspace1/Standard1 列值: 键: {0}, 值: {1}",

utf8Encoding.GetString(returnedColumn.Column.Name),

utf8Encoding.GetString(returnedColumn.Column.Value));

transport.Close();

Console.ReadKey();

}

}

}

您可能还会对下面的文章感兴趣: