如果您正在寻找一个功能强大的开源分布式数据库系统,但又不想花费数小时来配置和安装它,那么 Cassandra 是适合您的解决方案。
Cassandra 是一个功能强大的开源分布式数据库系统,旨在处理许多商用服务器上的大量数据,提供高可用性,没有单点故障。相反,数据使用键值存储进行分区并分布在多个服务器上。
一、准备工作
- 部署新的 Vultr Rocky Linux 实例
- 使用 SSH 登录服务器
- 更新您的 Vultr Rocky Linux 8 服务器
- 创建具有 sudo 访问权限的非 root 用户
二、安装 Java OpenJDK
首先,要在系统上运行 Cassandra,必须安装 Java OpenJDK。OpenJDK 是 Java 平台的免费开源实现。下面列出了安装说明。
- 运行命令以安装包。在撰写本文时,Java OpenJDK 的最新版本 1.8.xxx。Java OpenJDK 的安装可能需要一些时间才能完成。
dnf install
java-1.8.0-openjdk
$ sudo dnf install java-1.8.0-openjdk -y
- 安装完成后,使用以下命令验证系统中已安装的 Java OpenJDK 版本。
java -version
$ java -version openjdk version "1.8.0_322" OpenJDK Runtime Environment (build 1.8.0_322-b06) OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
三、安装 python
Cassandra 是用 Java 编写的,但是你也需要安装 python,因为cqlsh工具是用 python 编写的。Cqlsh 是 Cassandra 的命令行界面;你需要安装 python 来运行 Cassandra。
- 运行命令以在系统中安装软件包。在撰写本文时,python的最新版本是3.6.8。
dnf install
python36
& sudo dnf install python36 -y
- 安装完成后,使用命令验证系统中已安装的版本。
python3 --version
$ python3 --version Python 3.6.8
- 运行以下命令以选择默认的 Python 解释器。Cassandra 需要 python v3 或更高版本。因此,您应该从列表中选择最新的一个,并且至少是v3。选择与最新 python 版本对应的数字,然后按 Enter 键。在此演示中,它是选项 2。
alternatives --config
$ alternatives --config python 1 /usr/libexec/no-python 2 /usr/bin/python3
四、安装 Apache Cassandra
现在,您的系统中已安装了所需的组件,并且可以安装 Apache Cassandra 了。
基本的 Rocky Linux 存储库没有 Cassandra 软件包,因此您需要先将其存储库添加到您的系统中。
- 使用文本编辑器创建一个在 /etc/yum.repos.d 目录下命名的新文件。
cassandra.repo
nano
sudo nano /etc/yum.repos.d/cassandra.repo
- 使用以下内容填充文件。指定 RPM 所在的位置()。这里的意思是从这个位置下载最新版本的Apache Cassandra 4.0.3。您始终可以选择其官方存储库中可用的最新版本。
cassandra.repo
baseurl
https://downloads.apache.org/cassandra/redhat/40x/
40x
[cassandra] name=Apache Cassandra baseurl=https://downloads.apache.org/cassandra/redhat/40x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://downloads.apache.org/cassandra/KEYS
- 保存并退出文件,方法是按 Ctrl+O、Enter 和 Ctrl+X。运行该命令以使用新添加的存储库更新系统的包管理索引。
dnf update
$ sudo dnf update -y
- 运行 Cassandra 命令以检查新存储库是否已正确设置。您将看到新的 Cassandra 存储库在输出中启用。
dnf repolist
$ sudo dnf repolist cassandra repo id repo name status cassandra Apache Cassandra enabled
- 最后,使用命令安装包。
cassandra
dnf install
& sudo dnf install cassandra -y
- 启动 Cassandra 服务。
sudo service cassandra start Reloading systemd: [ OK ] Starting cassandra (via systemctl): [ OK ]
- 启用 Cassandra 服务以在系统重新启动时启动。
$ sudo systemctl enable cassandra cassandra.service is not a native service, redirecting to systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable cassandra
- 检查 Cassandra 的服务状态。
sudo service cassandra status cassandra.service - LSB: distributed storage system for structured data Loaded: loaded (/etc/rc.d/init.d/cassandra; generated) Active: active (running) since Mon 2022-02-21 23:35:06 UTC; 4min 44s ago
五、保护 Cassandra
保护您的 Cassandra 集群与安装它一样重要。假设您在同一网络上有多个 Cassandra 节点。您应该在开始时保护集群,以防止攻击者访问您的数据库。
- 运行以下命令以创建名为 Cassandra 的新防火墙区域。您应该创建一个新区域以与 Cassandra 集群关联,以防止与系统中的其他服务发生冲突。该标志定义新防火墙是永久性的。该标志定义新的防火墙区域。
firewall-cmd
cassandra-cluster
--permanent
--new-zone
$ sudo firewall-cmd --permanent --new-zone cassandra-cluster success
- 重新加载服务。
firewalld
$ sudo firewall-cmd --reload
- 将服务器网络 CIDR 添加到新区域中,以便客户端和服务器可以相互通信。
$ sudo firewall-cmd --zone=cassandra-cluster --add-source=your-CIDR-here/24 --permanent
- 运行以下命令以允许访问新区域中 Cassandra 的默认端口。
cassandra-cluster
sudo firewall-cmd --zone=cassandra-cluster --add-port=7000/tcp --permanent sudo firewall-cmd --zone=cassandra-cluster --add-port=9042/tcp --permanent
- 最后,重新加载规则。此时,您的 Cassandra 集群是安全的,只能从您的 CIDR-here/24 访问。
firewalld
sudo firewall-cmd --reload
六、测试 Cassandra
现在你已经有了一个新的 Cassandra 集群,你可以测试它是否启动并正常运行。
- 运行该命令以检查您的 Cassandra 集群状态。该命令将返回所有节点的信息,包括 IP 地址、每个节点的平均负载、数据中心名称、版本以及集群中每个节点的健康统计信息。
nodetool status
$ sudo nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 97.22 KiB 16 100.0% 5607b149-a79e-4e3e-8d98-5b4a26ff698f rack1
- U 表示节点已启动。您可以通过查看输出中相应的 U 或 D 来查看哪些节点处于启动或关闭状态。
- N 表示节点正常。
- 地址显示节点的 IP 地址。
- 主机 ID 是每个节点的唯一标识符。
- 您还可以使用该命令与 Cassandra 集群进行交互。
cqlsh
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.3 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. cqlsh>
- 例如,如果要更改默认名称群集(测试群集),可以使用命令进行更改。替换为所需的值。
update
Vultr Cluster
$ UPDATE system.local SET cluster_name = 'Vultr Cluster' WHERE KEY = 'local';
- 退出 cqlsh shell。
$ quit
下次使用该命令时,它将使用新的集群名称( Vultr 集群)。此输出确认您已在系统上成功安装 Cassandra。cqlsh
$ cqlsh
Connected to Vultr Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.3 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>