Cassandra 2.1.0 安装详解(单点与单个集群)

时间:2021-03-12 04:47:17

一、单点安装

单点安装参考文档:http://wiki.apache.org/cassandra/GettingStarted

1. 安装需求

           cassandra 2.1.0 需要稳定版的Java 7,或者OpenJDK/IBM JVM

2. 下载   

    下载cassandra website.此处下载完整的apache-cassandra-2.1.0-bin.tar.gz包直接在机器上配置安装。    tar zxvf apache-cassandra-2.1.0-bin.tar.gz    解压后目录如下:    Cassandra 2.1.0 安装详解(单点与单个集群)Cassandra 2.1.0 安装详解(单点与单个集群)

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 };
    使用keyspace
USE 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列上先创建index
CREATE 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.html

2.配置文件

本文使用三台机器,进行单集群安装,多集群不讨论。
节点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 pid
    2.清空原有的数据,只要启动会生成数据文件,要全部删除
        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上可以看到过程,提示其它两个结点加入了集群。
Cassandra 2.1.0 安装详解(单点与单个集群)
Cassandra 2.1.0 安装详解(单点与单个集群)
启动完成后,可以使用nodetool工具查看集群各节点状态:
    bin/nodetool status
Cassandra 2.1.0 安装详解(单点与单个集群)

注意:配置过程如果配置listen_address和rpc_address不正确,就会出现“Unable to gossip with any seeds”错误,配置IP过程一定要仔细,出错时先查看IP配置是否错误。

4.启动cql

不能像单机时直接使用./cqlsh 启动。
后面需要加上IP地址,如:
./cqlsh 192.168.1.10
OVER!!!