参考
https://blog.csdn.net/yuanjian0814/article/details/78768779 初始化多节点集群(多个数据中心)
https://www.ibm.com/developerworks/cn/analytics/library/ba-multi-data-center-cassandra-cluster-kubernetes-platform/index.html 图解
https://www.cnblogs.com/ziyouchutuwenwu/p/4297610.html 告密者策略
https://blog.csdn.net/yuanjian0814/article/details/78772128 将数据中心添加到集群
http://zqhxuyuan.github.io/tags/cassandra/ cassandra问题
一. 安装单节点单数据中心cassandra
单节点cassandra数据库
1.安装jdk
2.安装python (失败提示缺乏c编译器,先安装 yum install gcc.*)
3.安装cassandra
a.注意安装的版本
b.配置 cassandra.yaml
修改集群名,默认Test Cluster,为避免与其它集群冲突,建议修改;
data,commitlog,saved_cash 目录可以修改到指定目录,修改时注意格式。默认在cassandra/data/下,启动时会自动创建;
修改seeds,默认为127.0.0.1,最好修改为本地ip地址 eg:192.168.1.1(便于集群扩展);
修改 listen_address 和 rpc_address 为本地ip;
c.启动cassandra
进入目录cassandra/bin/,执行 ./cassandra(后台启动) 或 ./cassandra -f(前台启动);
报错:格式不对,检查配置文件是否多或少了空格;
内存不足,cassandra默认最大需要内存为2048M,若本机内存不高,配置文件里修改memtable_heap_space_in_mb: 2048
memtable_offheap_space_in_mb: 2048(约380行,默认被注释)
无法gossip,检查防火墙开放需要的端口,或者关闭防火墙
d.使用cql
进入目录cassandra/bin/,执行./cqlsh ip
创建keyspace CREATE KEYSPACE IF NOT EXISTS mycas WITH REPLICATION = {'class': 'SimpleStrategy','replication_factor':1};(副本配置策略,复制因子)
二. 部署cassandra单数据中心集群
在已有的cassandra集群加入新的节点
1.安装jdk,安装python,安装cassandra,注意版本要与集群中一致
2.配置cassandra
a.配置已存在的节点192.168.1.1,将新节点ip 192.168.1.2 加入seed,并重启(该步骤不是必须的,但为了cassandra后续的扩展,seed最好多于1个)
b.配置新节点192.168.1.2的cassandra.yaml
修改集群名和seed与原节点一致
修改 listen_address 和 rpc_address 为本地ip
添加 auto_bootstrap:false(仅在初始化没有数据的干净节点时添加此设置)
c.启动cassandra
进入目录cassandra/bin/,执行 ./cassandra(后台启动) 或 ./cassandra -f(前台启动);
报错:格式不对,检查配置文件是否多或少了空格;
内存不足,cassandra默认最大需要内存为2048M,若本机内存不高,配置文件里修改memtable_heap_space_in_mb: 2048
memtable_offheap_space_in_mb: 2048(约380行,默认被注释)
无法gossip,检查防火墙开放需要的端口,或者关闭防火墙
d.查看集群状态
进入目录cassandra/bin/,执行./nodetool status 或 ./nodetool status mycas
e.使用cql
进入目录cassandra/bin/,执行./cqlsh ip
三. 部署多数据中心集群
在单节点单数据中心cassandra 加入新的数据中心节点
1.修改已有节点192.168.1.1的配置
a.在seed中加入本节点192.168.1.3
b.添加 auto_bootstrap:false
c.修改副本策略endpoint_snitch(约800行),将SimpleSnitch 改为 GossipingPropertyFileSnitch
d.修改数据中心文件cassandra-rackdc.properties,将dc=dc1改为dc=datacenter1
e.进入cqlsh,修改keyspace策略 ALTER KEYSPACE mycas WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'datacenter1':1, 'datacenter2':1};
f.重启该节点
2.在新节点安装好cassandra后配置
a.修改集群名,seed,副本策略与已有节点一致
b.修改listen_address 和 rpc_address 为本地ip
c.添加 auto_bootstrap:false
d.修改数据中心文件cassandra-rackdc.properties,将dc=dc1改为dc=datacenter2
3.启动新节点,查看集群状态,数据中心的改变
4.修复节点,复制数据 ./nodetool repair
5.进入cqlsh操作数据库,检查数据的同步