Cassandra简介:Cassandra是一套开源分布式NoSQL数据库系统。
Cassandra官方网站:http://cassandra.apache.org/
下载地址:
https://www.apache.org/dyn/closer.lua/cassandra/4.1.2/apache-cassandra-4.1.2-bin.tar.gz
https://dlcdn.apache.org/cassandra/4.1.2/apache-cassandra-4.1.2-bin.tar.gz
1、防火墙配置
开启tcp9042端口,Cassandra的默认端口
CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。
1.1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl mask firewalld
systemctl stop firewalld
yum remove firewalld
1.2、安装iptables防火墙
yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9042 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
/usr/libexec/iptables/iptables.init restart #重启防火墙
2、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
3、Cassandra依赖java,需要先安装jdk-1.8环境
下载openjdk:https://adoptium.net/zh-CN/temurin/releases
上传OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz到/data/soft目录下
安装JDK
#创建jdk安装路径
mkdir -p /data/server/java
#解压
tar -zxvf /data/soft/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz -C /data/server/java
#进入安装目录
cd /data/server/java/jdk8u362-b09
#查看版本信息
./bin/java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_362-b09)
OpenJDK 64-Bit Server VM (Temurin)(build 25.362-b09, mixed mode)
#设置环境变量
vi /etc/profile #添加下面的信息
#set java environment
JAVA_HOME=/data/server/java/jdk8u362-b09
JRE_HOME=$JAVA_HOME/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
:wq! #保存退出
#让修改立即生效
source /etc/profile
#查看版本信息
java -version
[root@pgsql-master]# java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_362-b09)
OpenJDK 64-Bit Server VM (Temurin)(build 25.362-b09, mixed mode)
#其他版本的jdk安装方法相同
4、Cassandra需要python3才能正常运行
yum install python3 #安装python3
5、创建cassandra运行账号
cassandra进程不能以root用户启动,需要新建普通账号
#创建非特权用户并以该用户身份运行 Cassandra
sudo useradd -m cassandra #创建用户
sudo passwd cassandra #设置密码
6、安装cassandra
上传安装包到/data/soft目录
#新建安装目录
mkdir -p /data/server/cassandra
#解压安装包到安装目录
cd /data/soft
tar -zxvf /data/soft/apache-cassandra-4.1.2-bin.tar.gz -C /data/server/cassandra --strip-components 1
#配置环境变量
vi /etc/profile
#set cassandra environment
export CASSANDRA_HOME=/data/server/cassandra
export PATH=$PATH:$CASSANDRA_HOME/bin
:wq! #保存退出
source /etc/profile #使配置立即生效
#设置目录权限
sudo chown -R cassandra:cassandra /data/server/cassandra
sudo chmod 755 -R /data/server/cassandra
#切换到cassandra用户
su - cassandra
7、编辑配置文件
cp /data/server/cassandra/conf/cassandra.yaml /data/server/cassandra/conf/cassandra.yaml.bak
vi /data/server/cassandra/conf/cassandra.yaml
authenticator: PasswordAuthenticator #启用用户名和密码验证
authorizer: CassandraAuthorizer
listen_address: 192.168.21.100 #用于监听客户端请求的地址
rpc_address: 0.0.0.0 #用于接受远程过程调用(RPC)请求的地址
broadcast_rpc_address: 192.168.21.100 #定节点之间进行远程过程调用(RPC)通信时使用的广播地址
- seeds: "192.168.21.100,127.0.0.1" #种子节点的地址
native_transport_max_concurrent_connections: -1 #最大连接数,默认是-1没有限制
:wq! #保存退出
/data/server/cassandra/bin/cassandra #启动 Cassandra 服务
#测试cassandra服务
telnet 127.0.0.1 9042
telnet locahost 9042
telnet 192.168.21.100 9042
#进入控制台
cd /data/server/cassandra/bin
./cqlsh -u cassandra -p cassandra
./cqlsh 127.0.0.1 -u cassandra -p cassandra
./cqlsh localhost -u cassandra -p cassandra
./cqlsh 192.168.21.100 -u cassandra -p cassandra
exit #退出控制台
/data/server/cassandra/bin/nodetool stopdaemon #停止 Cassandra 服务
8、添加cassandra启动脚本
vi /data/server/cassandra/cassandra.sh
#!/bin/bash
# Cassandra 安装路径
CASSANDRA_HOME=/data/server/cassandra
start() {
# 启动 Cassandra
$CASSANDRA_HOME/bin/cassandra -R
echo "Cassandra started."
}
stop() {
# 停止 Cassandra
$CASSANDRA_HOME/bin/nodetool stopdaemon
echo "Cassandra stopped."
}
status() {
# 查看 Cassandra 状态
$CASSANDRA_HOME/bin/nodetool status
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
:wq! #保存退出
#添加执行权限
chmod +x /data/server/cassandra/cassandra.sh
#启动 Cassandra
/data/server/cassandra/cassandra.sh start
#关闭 Cassandra
/data/server/cassandra/cassandra.sh stop
#重启 Cassandra
/data/server/cassandra/cassandra.sh restart
#查看 Cassandra 状态
/data/server/cassandra/cassandra.sh status
9、修改cassandra默认账号登录密码、创建新账号
#登录控制台,默认账号和密码都是cassandra
cd /data/server/cassandra/bin
./cqlsh -u cassandra -p cassandra
#修改默认用户密码
ALTER USER cassandra WITH PASSWORD '123456';
#创建用户,一个是超级管理员权限superuser,一种是普通账号nosuperuser
CREATE USER myuser WITH PASSWORD '123456' NOSUPERUSER ;
exit #退出
cd /data/server/cassandra/bin
./cqlsh -u myuser -p 123456
#创建键空间
CREATE KEYSPACE myuser_workbench WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1} AND DURABLE_WRITES = true;
键空间名称: myuser_workbench
SimpleStrategy: 是一种简单的复制策略
replication_factor 设置为 1: 表示只在一个节点上进行复制。
DURABLE_WRITES 参数设置为 true:表示将启用持久化写入
#授予autoops用户在autoops_workbench键空间中的所有表和权限,包括创建、读取、更新和删除等操作的权限。
GRANT ALL PERMISSIONS ON KEYSPACE autoops_workbench TO autoops;
#查看键空间
DESCRIBE KEYSPACES;
DESCRIBE KEYSPACE myuser_workbench;
#删除用户
DROP USER myuser ;
10、使用客户端登录数据库
Windows下可以使用DBeaver客户端进行登录
注意:DBeaver默认没有cassandra驱动,需要先导入驱动才能连接cassandra数据库
驱动下载:
https://downloads.datastax.com/jdbc/cql/2.0.12.1013/SimbaCassandraJDBC42-2.0.12.1013.zip
ip:192.168.21.100
端口:9042
用户名:cassandra
密码:123456
至此,Linux下Cassandra单节点安装部署完成。