一、单点安装
单点安装参考文档:http://wiki.apache.org/cassandra/GettingStarted1. 安装需求
cassandra 2.1.0 需要稳定版的Java 7,或者OpenJDK/IBM JVM2. 下载
下载cassandra website.此处下载完整的apache-cassandra-2.1.0-bin.tar.gz包直接在机器上配置安装。 tar zxvf apache-cassandra-2.1.0-bin.tar.gz 解压后目录如下:3.配置相关文件
需要配置: data_file_directories
默认值 /var/lib/cassandra/data
commitlog_directory
默认值 /var/lib/cassandra/commitlog
saved_caches_directory
默认值 /var/lib/cassandra/saved_caches
进入conf目录,vi cassandra.yaml
本例修改如下:
# Directories where Cassandra should store data on disk. Cassandra# will spread data evenly across them, subject to the granularity of# the configured compaction strategy.# If not set, the default directory is $CASSANDRA_HOME/data/data.data_file_directories: - /cassandra/data
# commit log. when running on magnetic HDD, this should be a# separate spindle than the data directories.# If not set, the default directory is $CASSANDRA_HOME/data/commitlog.commitlog_directory: /cassandra/commitlog
# saved caches
# If not set, the default directory is $CASSANDRA_HOME/data/saved_caches.
saved_caches_directory: /cassandra/saved_caches
注意配置项前面不要有空格,否则启动会报错配置日志文件:
编辑
conf/logback.xml,修改其中一行如下: <file>/cassandra/log/system.log</file> 以上配置的文件夹路径需要自己手工创建,要在启动cassandra前创建完成。如果要配置JVM ,如堆大小,在
conf/cassandra-env.sh配置
4.启动Cassandra
进入bin目录
执行 ./cassandra
-f 启动,如果不使用-f,默认会后台启动。
5.试用cqlsh
cqlsh是cassandra的命令行操作界面,进入bin目录,执行
./cqlsh
如果成功,会出现如下提示Connected to Test Cluster at localhost:9160.
[cqlsh 2.3.0 | Cassandra 1.2.2 | CQL spec 3.0.0 | Thrift protocol 19.35.0]
Use HELP for help
首先,创建keyspace
CREATE KEYSPACE mykeyspace
WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };使用keyspaceUSE mykeyspace;创建用户表CREATE TABLE users ( user_id int PRIMARY KEY, fname text, lname text);插入数据INSERT INTO users (user_id, fname, lname) VALUES (1745, 'john', 'smith');INSERT INTO users (user_id, fname, lname) VALUES (1744, 'john', 'doe');INSERT INTO users (user_id, fname, lname) VALUES (1746, 'john', 'smith');查看所有数据SELECT * FROM users;结果user_id | fname | lname---------+-------+------- 1745 | john | smith 1744 | john | doe 1746 | john | smith添加where条件,需要在where列上先创建indexCREATE INDEX ON users (lname);SELECT * FROM users WHERE lname = 'smith'; user_id | fname | lname---------+-------+------- 1745 | john | smith 1746 | john | smith二.集群安装(单集群)
1.参考文档:
http://www.datastax.com/documentation/cassandra/2.1/cassandra/initialize/initializeSingleDS.html2.配置文件
本文使用三台机器,进行单集群安装,多集群不讨论。
节点IP分别为192.168.1.8,192.168.1.9,192.168.1.10,把9和10作为seed node。
集群安装和单点安装类似,只需先在一台机器上把配置文件写好,然后把安装文件复制到其它节点即可。
本文单点安装时已经安装了cassandra,直接在该机器上修改后复制到其它两个结点
修改过程:
1.如果已经启动cassandra,停止服务。前端运行直接ctrl+c,后端运行使用kill命令杀死进程
$ ps auwx | grep cassandra$ sudo kill pid2.清空原有的数据,只要启动会生成数据文件,要全部删除
rm -rf /cassandra/data/system/*
3.修改cassandra.yaml文件。
num_tokens:256
- seeds: "192.168.1.10,192.168.1.9"
listen_address: 192.168.1.10 (此处集群不能用localhost,可以设置为空,可能会出错,最好配置与hostname绑定的ip地址)
rpc_address: (参考文档设置为0.0.0.0,本文设置为空,如果设置为0.0.0.0,还需要broadcast_rpc_address配置一个值)
endpoint_snitch: SimpleSnitch (不用修改,默认即可)
4.修改cassandra-rackdc.properties文件,可以设置DC(集群) 和RACK(机架)的名字,本此不作修改,采用默认。
修改完毕后,把本机的安装文件复制到其它两台机器,
在192.168.1.8和192.168.1.9上首先要和单点安装时创建相同的文件夹(data,commitlog,saved_caches,log)
然后分别执行
mkdir /cassandra/apache-cassandra-2.1.0
scp root@192.168.1.10:/cassandra/apache-cassandra-2.1.0/* /cassandra/apache-cassandra-2.1.0/
最后需要修改cassandra.yaml文件中listen_address地址为当前机器 的IP。
3.启动集群
一切OK后,就可以启动集群了:
先在seed node上启动
bin/cassandra -f
然后分别在其它结点上启动
因为是前端启动,在192.168.1.10上可以看到过程,提示其它两个结点加入了集群。
启动完成后,可以使用nodetool工具查看集群各节点状态:
bin/nodetool status
注意:配置过程如果配置listen_address和rpc_address不正确,就会出现“Unable to gossip with any seeds”错误,配置IP过程一定要仔细,出错时先查看IP配置是否错误。
4.启动cql
不能像单机时直接使用./cqlsh 启动。
后面需要加上IP地址,如:
./cqlsh 192.168.1.10
OVER!!!