说明:本篇使用的是Cassandra1.2.0版本(由于Cassandra存在bug,目前好像只有JDK1.6.30支持),以在linux上安装为例。

第1章Cassandra集群配置

1.1条件

正确地搭建一个多节点多数据中心的集群的先决条件如下:

·        每个节点需要安装Cassandra.

·        集群的总节点数(好像没什么用)

·        集群的名称(默认“Test Cluster”就行)

·        集群中每个节点的IP

·        哪些节点做种子节点(其它节点用种子节点列表找到彼此并知晓集群的拓扑环.)

·        计划使用的snitch

·        如果节点在防火墙后,确保你所知道的端口能访问。可参考ConfiguringFirewall Port Access.

·        其它你可能需要的配置ChoosingNode Configuration OptionsNodeand Cluster Configuration.

1.2网络拓扑结构

根据实际情况搭建自己的网络拓扑结构。

例如要配置4个节点的集群,可以配成1个RAC,2个数据中心,每个数据中心2个节点,每个数据中一个种子节点。如下图。


1.3单个Cassandra节点安装和配置

因为Cassandra集群中所有节点没有主从之分,所以每个节点的配置都差不多。选择其中1个节点服务器按下述步骤安装(简称node0)。

1.3.1安装

1、创建Cassandra用户及密码

           [root@ node0 ~]# useradd javadev

           [root@node0 ~]# passwd javadev

2、Cassandra1.2.0需要JDK1.6.30版本的JDK支持。

将此两个文件拷贝到刚才创建的用户的home目录(如/home/javadev)下。

安装JDK:

           [javadev@node0 ~]$ chmod +x jdk-6u30-linux-x64.bin

           [javadev@node0 ~]$./jdk-6u30-linux-x64.bin

设置Java环境变量:

           JAVA_HOME=/home/javadev/jdk1.6.0_30

           PATH=$JAVA_HOME/bin:$PATH:$HOME/bin

           将上面2行写到.bash_profile

安装Cassandra:

           [javadev@node0 ~]$ tar –zxvf apache-cassandra-1.2.0.tar.gz

1.3.2基本配置

l  Cassandra使用目录

在appache-cassandra-1.2.0/conf/cassandra.yaml文件中,修改如下配置项的文件目录(如果目录不存在,则需要创建)。

data_file_directories(如/home/javadev/apache-cassandra-1.2.0/data)

commitlog_directory(如/home/javadev/apache-cassandra-1.2.0/commitlog)

saved_caches_directory(如/home/javadev/apache-cassandra-1.2.0/saved_caches)

l  内存使用配置(可选)

在appache-cassandra-1.2.0/conf/cassandra-env.sh文件中,将下面两行的注释符“#”去掉,并调整为适当的大小。

#MAX_HEAP_SIZE="4G"

#HEAP_NEWSIZE="800M"

l  Cassandra系统日志文件

在appache-cassandra-1.2.0/conf/log4j-server.properties文件中,修改Cassandra系统日志文件路劲,如:                log4j.appender.R.File=/home/javadev/apache-cassandra-1.2.0/system.log

l  cassandra.yaml配置

   在cassandra.yaml文件中,根据2.2中的网络拓扑结构和服务器信息,做如下关键项修改(黑色字体为说明文字)。

         node0:

                              cluster_name:'Test Cluster'(集群的名字)

                              num_tokens:256

                             seed_provider:

                                                 class_name:org.apache.cassandra.locator.SimpleSeedProvider

                   parameters:

                                                 -seeds: "192.168.0.188,192.168.0.193"(根据实际拓扑结构修改)

                        listen_address:192.168.0.193(节点ip地址)

                        rpc_address:0.0.0.0

                        endpoint_snitch:RackInferringSnitch

l  网络拓扑配置

在cassandra-topology.properties文件的配置为:

                    # CassandraNode IP=Data Center:Rack

                    192.168.0.193=DC1:RAC1

                   192.168.0.194=DC1:RAC1

                    192.168.0.188=DC2:RAC2

                    192.168.0.197=DC2:RAC2

最好还加个默认的数据中心和rack名称:default=DC1:RAC1

1.4集群中其它节点配置

1.4.1条件

最好相同的Cassandra用户名(如node0的是javadev,其它3台也创建此用户),安装好JDK。

1.4.2配置

在node0(刚才装好Cassandra的节点)使用如下命令将Cassandra目录拷贝到其它节点服务器(需要输入目标服务器javadev用户密码)。

[javadev@node0 ~]$ scp-r appache-cassandra-1.2.0 javadev@192.168.0.194:/home/javadev

    然后在其它3个节点中修改cassandra.yaml文件的listen_address为本节点地址。

至此,Cassandra集群配置完成。

1.5启动集群

在启动之前,最后确定data_file_directories配置目录没有任何数据。并且先启动种子节点,然后启动其它节点。

进入appache-cassandra-1.2.0/bin目录,在每个节点执行:

[javadev@node0 bin]$./cassandra

如果没有出现异常信息,则启动正常。

1.6使用Cassandra-cli

进入appache-cassandra-1.2.0/bin目录,执行下面的命令连接Cassandra实例。

[javadev@node0 bin]$./cassandra-cli

1.7停止集群

进入appache-cassandra-1.2.0/bin目录,打开stop-server文件,注释“echo”所在行,将下两行的注释去掉。

# user=`whoami`

# pgrep -u $user -f cassandra| xargs kill -9

在每个节点执行下面命令即可停止集群。

[javadev@node0 bin]$ ./stop-server

参考:Initializing a multiple node clusterInitializingMultiple Data Center Clusters on Cassandra


Logo

更多推荐