Cassandra是一个高可扩展性、最终一致性、分布式、结构化的key-value数据库,它借鉴了Amazon的Dynamo和Google's BigTable的数据结构和功能特点,最初来源于Facebook的数据存储项目,目前是Apache的一个孵化项目
Thrift是一个跨语言的服务开发框架,目前是Apache的一个孵化项目,Cassandra的客户端需要使用Thrift制作
下载Cassandra的安装包
conf文件夹是放置配置文件的,bin是放启动和测试脚本的文件夹
1.单个节点的配置
按照官网的说明,修改conf/storage-conf.xml
<CommitLogDirectory>
<DataFileDirectory>
<CalloutLocation>
<BootstrapFileDirectory>
<StagingFileDirectory>
这几个文件夹配置正确,保证所指向的文件夹都已经存在
另外,修改conf/log4j.properties文件
配置log4j.appender.R.File项,指向一个文件
在Linux下使用命令 sh cassandra -f 启动
在Windows下使用 cassandra.bat 启动
注意:1)默认的jmxremote端口是8080,可能与现有系统所使用的端口冲突,可以在bin/cassandra.in.sh中修改
2)Windows下的安装比较诡异,conf和lib文件夹需要放置在C:/Documents andSettings/{你的用户名}/下
启动后看到的界面内容比Linux少,启动信息可以从日志中获得
2.Cluster的配置
Cassandra使用Gossip协议P2P的方式进行节点间的通信
需要在配置的节点中修改conf/storage-conf.xml中增加<Seed>,类似DNS的作用,显式的配置它所连接的节点
例如
<Seeds>
<Seed>127.0.0.1</Seed>
<Seed>10.61.0.184</Seed>
<Seed>10.61.0.180</Seed>
</Seeds>
另外,需要修改ListenAddress和ThriftAddress为本节点的IP的地址,例如
<ListenAddress>10.61.0.180</ListenAddress>,这个端口控制端口,Cluster的节点通过该端口进行通信
<ThriftAddress>10.61.0.180</ThriftAddress>,这个端口监听来自客户端的消息,使用Thrift编程就用这个端口
所使用的节点配置好后,都重启,发现日志上已经显示了有节点加入Cluster
在Linux下可以用下面的命令测试连接在某一台机器上的Cluster中的机器
sh nodeprobe --host 10.61.0.184cluster
3.编程接口Thrift的配置
使用下面的命令,获取Thrift的压缩包
wget -O thrift.tgz http://gitweb.thrift-rpc.org/?p=thrift.git;a=snapshot;h=HEAD;sf=tgz
如果使用Java语言,可以在解压Thrift后,到安装目录下的/lib/java目录,使用ant编译得到libthrift.jar
注意:编译Java的jar时,需要用到ant,版本需要在1.7.1及以上,不然在编译时提示"not support nested'typedef' element"的异常
4.编写客户端
把上一步生成的libthrift.jar和cassandra/lib下的apache-cassandra-inbubating-0.4.1.jar引入classpath
下面一个测试代码,修改自官方文档
编写测试时,使用了两台机器搭建了两个node,组成Cluster
Ubuntu9.04 /P4 2.4/ 1G DDR
WindowsXP SP3/P4 2.8/ 2G DDR
相关文章
- vim+taglist+ctags安装使用笔记
- 3、dlib学习笔记--dlib安装与使用
- php与redis扩展安装和使用-Redis学习笔记六
- Thrift在Windows及Linux平台下的安装和使用示例
- RVM安装和使用总结笔记
- python爬虫Mitmproxy安装使用学习笔记
- Laravel5.7框架安装与使用学习笔记图文详解
- 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程
- 【笔记】Kali linux的安装 和 一些使用前的准备工作(原创+转载)
- Python NumPy库安装使用笔记