cassandra的初步使用及一些简单的操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Log4j代码
13:04:52,098Node /10.10.13.232is now part of the cluster
INFO 13:04:52,098 Node /10.10.13.232 is now part of the cluster
到这里,Cassandra分布式节点服务器的搭建就完成了。使用官网提供的客户端代码进行测试,发现数据已经提交到服务器并且在多个节点间进行复制了
<StagingFileDirectory>D:\apache-cassandra-0.5.1\staging</StagingFileDirectory>
3
CASSANDRA_HOME=D:\apache-cassandra-0.5.1
3
运行bin目录下的cassandra.bat。如果看到:INFO - Starting up server gossip,那么恭喜你,Cassandra已经在你的本机启动起来了。
部署要求:
1. JDK1.6
2. OS:linux,我在windows上实验过,不知道为啥一直没通(7000端口上只有windows的发包,双方不互相通信)
3. cassandra 0.6
OK,基本的东西都有了,进入到cassandra的目录,首先需要修改一些相关的文件路径:
1. log4j.properties文件输出路径修改
1
1
<Seeds>
<Seed>hadoop2</Seed>
<Seed>hadoop3</Seed>
<Seed>hadoop4</Seed>
<Seed>hadoop5</Seed>
<Seed>hadoop6</Seed>
<Seed>hadoop7</Seed>
<Seed>hadoop8</Seed>
<Seed>hadoop9</Seed>
2. storage-conf.xml CommitLogDirectory和DataFileDirectory路径修改
接着进行分布式节点的配置,还是修改torage-conf.xml:
1. <ClusterName>Test Cluster</ClusterName>
这个要求所有节点的名字都相同,如果不相同,则报类似AName != BName的错误
如何安装和配置
文章分类:数据库
Cassandra属于最近比较流行的一款NoSQL数据库,/中给NoSQL的定义如下:
下一代的数据库产品应该具备这几点:非关系型的,分布式的,开源的,可以线性扩展的。这类数据库最初的目的在于提供现代网站可扩展的数据库解决方案。这个运动开始于2009年初,目前正在迅速的发展。这种类型的数据库具有:自由的schema,数据多处备份,简单的编程API,数据的最终一致性保证等等。所以我们将这种类型的数据库称为NoSQL(不仅仅是SQL,全称为“not only sql”)。
本节点监听客户端数据和与其他服务器节点通信的IP地址,只能为本机IP,且不能为127.0.0.1或localhost,否则与其他服务器不能建立正确交互
此处的IP地址也可以不填,即值为空,则所有的节点配置都一样,更方便部署。
搞定storage-conf.xml!下面的工作就是将所有的Cassandra服务器节点依次启动,通过日志就可以看到相关的节点连接上了,日志为:
(column=first, value=John; timestamp=1249930053103)
(column=last, value=Smith; timestamp=1249930058345)
Returned 3 rows.
cassandra>
你也可以根据这篇文章《谈谈Cassandra的客户端》中的内容测试一下如何使用Java编写简单的程序和Cassandra交互。
然后,我们可以参考README.txt文件中提供的范例进行测试:
cassandra> set Keyspace1.Standard1['jsmith']['first'] = 'John'
Value inserted.
cassandra> set Keyspace1.Standard1['jsmith']['last'] = 'Smith'
3. <ReplicationFactor>2</ReplicationFactor>
配置数据需要复制的数量,复制的策略分RackUnawareStrategy和RackAwareStrategy两种方式(策略没细看不再描述)
4. <Seeds>
<Seed>10.10.13.220</Seed>
<Seed>10.10.13.181</Seed>
5
<AutoBootstrap>true</AutoBootstrap>
6
<ReplicationFactor>3</ReplicationFactor>
7
需要根据实际的情况来配置,可以参考Wiki。
2
在每一台节点上,运行bin/cassandra。如果看到:INFO - Starting up server gossip,说明启动成功。

如果需要真正在生产环境中使用Cassandra,我们需要搭建一个Cassandra集群,这样才能真正发挥出它作为NoSQL数据所应该具备的特性。
在Linux部署Cassandra的步骤基本与Windows上部署的类似,我们需要在每一台机器上安装JDK1.6,然后下载Cassandra,并修改log4j.properties和storage-conf.xml的配置文件和设置环境变量。不同的是,我们需要在storage-conf.xml文件中配置集群的信息:
Apache Cassandra
Apache Cassandra是一套开源分布式数据库管理系统。它最初由Facebook开发,用于储存特别大的数据。
主要特性:
●分布式
●于column的结构化
●高伸展性
Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其它节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。
<Seed>10.10.13.232</Seed>
</Seeds>
这个是所有分布式服务器节点的IP地址,如上面配置了3个IP即3个Cassandra节点
5. <ListenAddress>10.10.13.220</ListenAddress>
<ThriftAddress>10.10.13.220</ThriftAddress>
下面我们一起来看看如果分别在Windows和Linux环境下安装和部署Cassandra。

大多数人使用的OS都是Windows,所以如果只是想简单地测试一下Cassandra,我们可以直接在安装好JDK1.6的Windows系统上安装Cassandra,并进行简单的测试。
1
去/下载即可。目前最新的beta版本是0.6.0b3,但是我们安装使用的最新的Release版本0.5.1。
和其它数据库比较,Cassandra有三个突出特点:
■模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。
■真正的可扩展性:Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台计算机。你不必重启任何进程,改变应用查询,或手动迁移任何数据。
■多数据中心识别:你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。
一些使Cassandra提高竞争力的其它功能:
■范围查询:如果你不喜欢全部的键值查询,则可以设置键的范围来查询。
■列表数据结构:在混合模式可以将超级列添加到5维。对于每个用户的索引,这是非常方便的。
4
运行bin目录下的cassandra-cli.bat。输入:connect localhost 9160,连接成功后可以看到下面的提示。
cassandra> connect localhost 9160
line 1:18 missing SLASH at '9160'
Connected to localhost/9160
在这里抱怨一下:之前由于没有足够的服务器,使用windowsXP+solaris双节点进行测试,发现怎么也建立不起来。。。后来加入linux后,solaris+linux的方式却能正常走通,配置也都是一样的。
有空研究下为何在我的windows上不支持。。。。
参考地址:
/
<Seed>hadoop10</Seed>
</Seeds>
2
直接留空即可:
<ListenAddress></ListenAddress>
3
直接留空即可:
<ThriftAddress></ThriftAddress>
4
每一个集群的名称都应该是不用的
<ClusterName></ClusterName>
Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。
■分布式写操作:有可以在任何地方任何时间集中读或写任何数据。并且不会有任何单点失败。
Cassandra
文章分类:数据库
Cassandra作为目前很热门的一个NOSQL型数据库,引起了很多的关注。对NOSQL感兴趣的我,也来作了一次简单的测试。
废话不多说,下面就来介绍下Cassandra多节点的部署。
2
将下载的压缩包解压,假设解压的位置是D:\apache-cassandra-0.5.1。
1
log4j.appender.R.File=D:\apache-cassandra-0.5.1\logs
2
<CommitLogDirectory>D:\apache-cassandra-0.5.1\commitlog</CommitLogDirectory>
Cassandra的主要功能比Dynamo(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。)
<DataFileDirectories>
<DataFileDirectory>D:\apache-cassandra-0.5.1\data</DataFileDirectory>
</DataFileDirectories>
<CalloutLocation>D:\apache-cassandra-0.5.1\callouts</CalloutLocation>
2. <ColumnFamily Name="Standard1" CompareWith="BytesType"/>
配置ColumnFamily的一些属性,其中name是所要使用的ColumnFamily名称,可以多个,客户端做CRUD操作时需要指定。注意所有的节点配置都需要一样(我就曾因配置不一致出过ClassCastException的异常)
Value inserted.
cassandra> set Keyspace1.Standard1['jsmith']['age'] = '42'
Value iபைடு நூலகம்serted.
cassandra> get Keyspace1.Standard1['jsmith']
(column=age, value=42; timestamp=1249930062801)
相关文档
最新文档