Cassandra集群搭建

1.Cassandra介绍


Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据。NoSQl数据库分为4大类,Key-value类型、列存储型、文档类型、图形(Graph)等,而Cassandra为列存储型。
Cassandra的特点:

弹性可扩展性 - Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。
数据存储灵活 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。它可以根据您的需要动态地适应变化的数据结构。
便捷的数据分发 - Cassandra通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。
快速写入 - Cassandra被设计为在廉价的商品硬件上运行。 它执行快速写入,并可以存储数百TB的数据,而不牺牲读取效率。


2. 准备


1.CentOS x64系统至少3台(可以用虚拟机练习)
2.Java运行环境
3.Cassandra安装包
我这里选的是cassandra-3.11.6
下载链接wget https://mirror.bit.edu.cn/apache/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz

3.集群搭建


Cassandra选择了无中心的P2P架构,网络中的所有节点都是对等的,它们构成了一个环,节点之间通过Gossip协议每秒钟和至多三个节点交换一次数据,这样每个节点都拥有其它所有节点的信息,包括位置、状态等。为了保证数据交换的准确性,所有的节点必须使用同一份集群列表,这样的节点又被称作seed节点。
本文将使用4台虚拟机搭建集群
ip分别为:

192.168.3.40
192.168.3.41
192.168.3.42
其中将192.168.3.40 和 92.168.3.41作为seed(种子)节点

(1).搭建Java运行环境
同kafka安装一样,该集群已经安装完毕

(2)安装Cassandra

useradd cassandra
tar -zxvf apache-cassandra-3.11.6-bin.tar.gz
mv apache-cassandra-3.11.6 /home/cassandra/cassandra
chown cassandra:root /data/cassandra -R
mkdir -p  /data/cassandra/data
mkdir -p /data/cassandra/commitlog
mkdir -p /data/cassandra/saved_caches

vi /home/cassandra/cassandra/conf/cassandra.yaml编辑cassandra配置文件

配置下配置项
#集群名称
cluster_name: ‘ssyx001’
#数据存储的目录,这里按照自己的路径配置,不写默认为/var/lib/cassandra/data,这项可以有多个目录分行写
data_file_directories:
- /data/cassandra/data
#提交日志存放目录
commitlog_directory: /data/cassandra/commitlog
#缓存目录
saved_caches_directory: /data/cassandra/saved_caches
以上三个目录配置项,可以自己创建文件夹,自行配置

#种子节点 这里我使用192.168.3.40和192.168.3.41服务器作为种子节点,ip中间使用逗号隔开

seeds: “192.168.3.40,192.168.3.41”

#监听地址 这项配置当前服务器ip,rpc_address 和 listen_address一样填写当前服务器ip
listen_address:$ip
rpc_address:$ip
以上是基础配置,其他项配置参考cassandra配置详解
另两台服务器,也是按同样方法配置,注意的是 listen_address, rpc_address 这两项填写该台服务器地址,data_file_directories,commitlog_directory ,commitlog_directory 填写的目录需要提前创建好。

4.启动集群

cat << EOF > /etc/systemd/system/cassandra.service
[Unit]
Description=Cassandra Server Service
After=network.service
 
[Service]
Type=simple
Environment=JAVA_HOME=/opt/java1.8
 
PIDFile=/var/run/cassandra.pid
User=cassandra
ExecStart=/home/cassandra/cassandra/bin/cassandra -f -p /var/run/cassandra.pid
StandardOutput=journal
StandardError=journal
LimitNOFILE=100000
LimitMEMLOCK=infinity
LimitNPROC=32768
LimitAS=infinity
 
[Install]
WantedBy=multi-user.target
EOF
systemctl start cassandra
systemctl enable cassandra

#注意先启动种子机器

原文地址:https://www.cnblogs.com/breg/p/13187956.html