CentOS下Cassandra集群搭建
CentOS下Cassandra集群搭建
最近公司进行技术选型,作为一个菜鸟,当然先百度,结果关于Cassadnra资料并不是很多。没办法只能大量翻资料,所以写篇博客总结下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.0.17
下载链接www.apache.org/dyn/closer.lua/cassandra/3.0.17/apache-cassandra-3.0.17-bin.tar.gz
3.集群搭建
Cassandra选择了无中心的P2P架构,网络中的所有节点都是对等的,它们构成了一个环,节点之间通过Gossip协议每秒钟和至多三个节点交换一次数据,这样每个节点都拥有其它所有节点的信息,包括位置、状态等。为了保证数据交换的准确性,所有的节点必须使用同一份集群列表,这样的节点又被称作seed节点。
本文将使用4台虚拟机搭建集群
ip分别为:
- 192.168.50.133
- 192.168.50.136
- 192.168.50.137
- 192.168.50.138
其中将192.168.50.133 和 92.168.50.136作为seed(种子)节点
(1).搭建Java运行环境
使用Xshell工具连接服务器,使用FTP工具将JDK1.8的安装包上传至服务器 使用 tar -zxvf jdk-8u181-linux-x64.tar.gz 命令解压, 修改文件夹名称 mv jdk1.8.0_181 jdk1.8配置Java环境变量
vim /etc/profile 修改环境变量文件
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JRE_HOME=$JAVA_HOME/jre
- 1
- 2
- 3
- 4
将配置信息添加至profile文件末尾
执行source /etc/profile 使配置文件生效,之后执行 java -version查看是否安装成功
安装Cassandra
和之前一样,使用FTP工具将Cassandra3.0.7安装包上传至服务器,-tar -zxvf apache-cassandra-3.0.17-bin.tar.gz命令解压,mv apache-cassandra-3.0.17 cassandra 命令重命名文件夹。进入cassandra 文件夹查看目录
vim 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.50.133和192.168.50.136服务器作为种子节点,ip中间使用逗号隔开
- seeds: “192.168.50.133,192.168.50.136”
#监听地址 这项配置当前服务器ip,rpc_address 和 listen_address一样填写当前服务器ip
listen_address:
rpc_address:
以上是基础配置,其他项配置参考cassandra配置详解
另三台服务器,也是按同样方法配置,注意的是 listen_address, rpc_address 这两项填写该台服务器地址,data_file_directories,commitlog_directory ,commitlog_directory 填写的目录需要提前创建好。
启动集群
确保集群之间能互相通讯,所以每台服务器需关闭防火墙,使用命令service iptables stop关闭防火墙
先要启动seed节点,进入cassandra/bin目录,执行 ./cassandra 命令 启动cassandra 服务,其他节点也是按同样方法启动
待所有节点启动完成后, 可以在种子节点 下 使用 ./nodetool status 命令查看各个节点状态
这里发现192.168.50.138节点 处于DN(down) 状态,应该是配置文件写错
vim /usr/local/cassandra/conf/cassandra.yaml查看配置文件发现 rpc_address 地址写错
修改后,重启192.168.50.138这个节点,重新执行./nodetool status 查看各个节点状态
各个节点处于UP状态,Cassandra 可以使用cql 客户端用来连接Cassandra,cql和sql类似,需要python运行环境,这里不进行讲解。
至此Cassandra集群搭建完毕。