Cassandra集群:一,搭建一个三节点的集群

环境准备

JDK1.8 http://download.oracle.com/otn/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz

Python2.7* https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz

Cassandra 2.1.* http://archive.apache.org/dist/cassandra/2.1.20/apache-cassandra-2.1.20-bin.tar.gz

Host Name IP Address OS
sht-sgmhadoopcm-01 172.16.101.54 CentOS7.1
sht-sgmhadoopnn-01 172.16.101.55

CentOS7.1

sht-sgmhadoopnn-02 172.16.101.56

CentOS7.1

1. 各节点做准备工作

安装python和java

[root@sht-sgmhadoopcm-01 ~]# tar -zxf Python-2.7.15.tgz 
[root@sht-sgmhadoopcm-01 ~]# cd Python-2.7.15
[root@sht-sgmhadoopcm-01 Python-2.7.15]# ./configure --prefix=/usr/local/python-2.7.15 --enable-optimizations
[root@sht-sgmhadoopcm-01 Python-2.7.15]# make && make install
[root@sht-sgmhadoopcm-01 ~]# /usr/local/python-2.7.15/bin/python --version
Python 2.7.15

[root@sht-sgmhadoopcm-01 ~]# tar -zxf jdk-8u111-linux-x64.tar.gz -C /usr/java/
[root@sht-sgmhadoopcm-01 ~]# /usr/java/jdk1.8.0_111/bin/java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

 配置系统用户

[root@sht-sgmhadoopcm-01 ~]# groupadd -r -g 601 dba
[root@sht-sgmhadoopcm-01 ~]# useradd -r -u 601 -d /home/cassandra -g dba -G root cassandra
[root@sht-sgmhadoopcm-01 ~]# cat /home/cassandra/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

export CASSANDRA_HOME=/usr/local/cassandra
export JAVA_HOME=/usr/java/jdk1.8.0_171
export PYTHON_HOME=/usr/local/python-2.7.15
export PATH=$PYTHON_HOME/bin:$JAVA_HOME/bin:$CASSANDRA_HOME/bin:$CASSANDRA_HOME/tools/bin:$PATH:$HOME/bin:/usr/local/bin

 安装Cassandra

[root@sht-sgmhadoopcm-01 ~]# tar -zxf apache-cassandra-2.1.20-bin.tar.gz -C /usr/local/
[root@sht-sgmhadoopcm-01 ~]# ln -s /usr/local/apache-cassandra-2.1.20 /usr/local/cassandra
[root@sht-sgmhadoopcm-01 ~]# chown -R cassandra.dba /usr/local/apache-cassandra-2.1.20/

 2. 配置cassandra

cassandra-topology.properties文件各节点一致

[cassandra@sht-sgmhadoopcm-01 conf]$ cat cassandra-topology.properties 
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Cassandra Node IP=Data Center:Rack
#192.168.1.100=DC1:RAC1
#192.168.2.200=DC2:RAC2

#10.0.0.10=DC1:RAC1
#10.0.0.11=DC1:RAC1
#10.0.0.12=DC1:RAC2

#10.20.114.10=DC2:RAC1
#10.20.114.11=DC2:RAC1

#10.21.119.13=DC3:RAC1
#10.21.119.10=DC3:RAC1

#10.0.0.13=DC1:RAC2
#10.21.119.14=DC3:RAC2
#10.20.114.15=DC2:RAC2
172.16.101.54=EAST:RAC1
172.16.101.55=EAST:RAC1
172.16.101.56=EAST:RAC1


# default for unknown nodes
default=DC1:r1

# Native IPv6 is supported, however you must escape the colon in the IPv6 Address
# Also be sure to comment out JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
# in cassandra-env.sh
fe80:0:0:0:202:b3ff:fe1e:8329=DC1:RAC3

 cassandra.yaml

cluster_name: 'NavigationData'
data_file_directories:
     - /usr/local/cassandra/data
commitlog_directory: /usr/local/cassandra/commitlog
saved_caches_directory: /usr/local/cassandra/saved_caches
seed_provider:
    # Addresses of hosts that are deemed contact points. 
    # Cassandra nodes use this list of hosts to find each other and learn
    # the topology of the ring.  You must change this if you are running
    # multiple nodes!
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          # seeds is actually a comma-delimited list of addresses.
          # Ex: "<ip1>,<ip2>,<ip3>"
          - seeds: "172.16.101.54,172.16.101.55"
listen_address: 172.16.101.54                           #修改为各节点的IP地址
rpc_address: 172.16.101.54 #修改为各节点的IP地址
endpoint_snitch: PropertyFileSnitch

 cassandra-env.sh注释如下

#if [ "x$LOCAL_JMX" = "x" ]; then
#    LOCAL_JMX=yes
#fi

 3.启动并查看cassandra

[cassandra@sht-sgmhadoopcm-01 ~]$ /usr/local/cassandra/bin/cassandra &
[cassandra@sht-sgmhadoopnn-01 ~]$ /usr/local/cassandra/bin/cassandra &
[cassandra@sht-sgmhadoopnn-02 ~]$ /usr/local/cassandra/bin/cassandra &

[cassandra@sht-sgmhadoopcm-01 ~]$ nodetool status
Datacenter: EAST
================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
UN  172.16.101.54  51.75 KB   256     64.5%             0ec471a6-1730-4c53-9b70-78b03b40d13b  RAC1
UN  172.16.101.55  118.25 KB  256     69.2%             d4c873d0-e3b8-4e73-a9eb-1e238a399183  RAC1
UN  172.16.101.56  162.38 KB  256     66.4%             6f7b0f6e-f4bc-4724-b431-dddbeb16dcc1  RAC1
原文地址:https://www.cnblogs.com/ilifeilong/p/9463939.html