============================================================
服务器信息
搭建三节点的Cassandra群集:
SERVER1: 192.168.199.171 SERVER2: 192.168.199.172 SERVER3: 192.168.199.172
============================================================
下载依赖包
cassandra下载地址:https://cassandra.apache.org/download/ JDK 1.8.0_201下载地址:https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz Python 2.7.13下载地址:https://www.python.org/downloads/release/python-2713/
============================================================
配设JAVA环境
下载java安装包,解压到/usr/java18目录,然后在/etc/profile文件中追加下面代码:
#set java environment JAVA_HOME=/usr/java18 JRE_HOME=/usr/java18/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
使用下面命令刷新环境变量:
## 刷新环境配置 source /etc/profile
检查JAVA是否安装正确:
## 查看java版本 java -version ## 查看java路径 echo $JAVA_HOME
============================================================
安装Cassandra
## 创建安装目录 mkdir -p /export/servers/cassandra/ /export/data/cassandra/ ## 创建用户组和用户 groupadd cassandra useradd cassandra -g cassandra ## 将cassandra安装包解压到/export/servers/cassandra/ ## 修改文件目录权限 chown -R cassandra:cassandra /export/servers/cassandra/ /export/data/cassandra/
============================================================
配置Cassandra
修改/export/servers/cassandra/conf/cassandra.yaml文件的下面属性
## 群集名称 cluster_name: 'cluster1'
## 数据验证
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
## 数据目录
data_file_directories:
- /export/data/cassandra/data
## commitlog目录
commitlog_directory: /export/data/cassandra/commitlog
## saved_caches目录
saved_caches_directory: /export/data/cassandra/saved_caches
## 设置为第一个启动的节点地址
## 种子节点不做引导,它负责处理现有集群中新加入的节点。对于新的集群,引导处理会跳过种子节点。
seeds: "192.168.199.171"
## 将监听地址设置为本地IP
listen_address: 192.168.199.171
## 将RPC地址设置为本地IP
rpc_address: 192.168.199.171
## 程序访问端口,默认9042
native_transport_port: 9042
## endpoint_snitch属性
endpoint_snitch: GossipingPropertyFileSnitch
endpoint_snitch参数选项:
GossipingPropertyFileSnitch 这应该是你的生产使用的。本地节点的机架和数据中心在cassandra-rackdc.properties中定义,并通过gossip传播到其他节点。如果存在cassandra-topology.properties,它将用作回退,从而允许从PropertyFileSnitch进行迁移。 SimpleSnitch 将战略顺序视为接近度。这可以在禁用读修复时提高缓存位置。仅适用于单数据中心部署。 PropertyFileSnitch 接近性由机架和数据中心决定,这些在cassandra-topology.properties中显式配置。 Ec2Snitch 从EC2 API加载当前区域和可用区域信息。当前区域被视为数据中心,可用区域被视为机架。仅使用私有IP,因此这不会在多个区域工作。 Ec2MultiRegionSnitch 使用公共IP作为broadcast_address以允许跨区域连接(因此,您应该将seed地址设置为公共IP)。您将需要打开公共IP防火墙上的storage_port或ssl_storage_port(对于区域内流量,Cassandra将在建立连接后切换到专用IP)。 RackInferringSnitch 接近性由机架和数据中心确定,假定它们分别对应于每个节点的IP地址的第3和第2个八位字节。除非这种情况符合您的部署约定,否则这最好用作编写自定义Snitch类的示例