更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > AlmaLinux/Oracle Linux安装配置Apache Cassandra

AlmaLinux/Oracle Linux安装配置Apache Cassandra

更新时间:2023-02-11 16:06:24浏览次数:125+次

本文介绍在AlmaLinux 8/Oracle Linux 8系统上安装和配置Apache Cassandra的方法。Apache Cassandra是一个开源NoSQL数据库,能够处理大量非结构化数据类型,该工具于2008年成为开源项目,后来于2009年由Apache拥有,Cassandra基于两个主要产品,即DynamoDB和Google的Big Table,进行对等设计。

安装和配置Apache Cassandra的方法

步骤1、更新系统

首先刷新存储库缓存并更新系统上的所有包:

sudo dnf update

现在,在Alma Linux 8、Oracle Linux 8上安装EPEL存储库:

sudo dnf install yum-utils

sudo dnf install epel-release

按如下所示启用PowerTools:

sudo dnf config-manager --set-enabled powertools

步骤2、在Alma Linux 8、Oracle Linux 8上安装Java

由于Apache Cassandra是用Java编写的,因此在继续之前,我们需要在系统上安装Java。在本指南中,我们将安装OpenJDK11以提供如下Java运行时环境:

sudo dnf install java-11-openjdk

安装后,验证版本:

$ java --version

openjdk 11.0.14

步骤3、在Alma Linux 8、Oracle Linux 8上添加Apache Cassandra存储库

Cassandra软件包在默认的Alma Linux 8、Oracle Linux 8软件包存储库中不可用,因此需要添加。从官方存储库安装Cassandra的主要好处是,我们可以使用简单的update命令保证获得最新的软件更新。

使用您喜爱的编辑器创建存储库:

sudo vi /etc/yum.repos.d/cassandra.repo

在文件中,添加以下行:

[cassandra]

name=Apache Cassandra

baseurl=https://downloads.apache.org/cassandra/redhat/40x/

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://downloads.apache.org/cassandra/KEYS

该存储库属于4.0版本,如果要安装Cassandra较旧的版本,请自行调整。

保存文件并更新包索引:

sudo dnf update -y

步骤4、在Alma Linux 8、Oracle Linux 8上安装Apache Cassandra

使用上面添加的存储库,我们可以使用以下命令在Alma Linux 8、Oracle Linux 8上轻松安装最新版本的Apache Cassandra:

sudo dnf install cassandra

会返回cassandra  noarch 4.0.2-1  cassandra   45 M等信息。

接受GPG密钥导入并继续安装。

步骤5、启动并启用Cassandra服务

安装后,我们需要启动Cassandra服务并使其在系统启动时自动运行。这可以使用以下命令完成:

sudo service cassandra start

sudo systemctl enable cassandra

验证服务是否正在运行:

$ systemctl status cassandra

您还可以验证Cassandra是否在localhost:9042上运行,如下所示。记住要等到Cassandra完成所有模块的加载:

nodetool status

步骤6、安装Cassandra查询语言

为了能够与Cassandra交互,我们需要与Python 2.7或Python 3.6+兼容的cqlsh工具。在本指南中,我们将使用如下安装的Python 3.8:

sudo dnf install python38

如果您有多个版本。您可能需要设置默认的Python版本,如下所示:

$ sudo update-alternatives --config python3

There are 2 programs which provide 'python3'.

*+ 1——/usr/bin/python3.6

2——/usr/bin/python3.8

检查Python版本:

$ python3 --version

Python 3.8.8

现在使用PIP,安装cqlsh工具:

pip3 install --user cqlsh

验证安装:

$ cqlsh --version

cqlsh 6.0.0

步骤7、在Alma Linux 8、Oracle Linux 8上配置Apache Cassandra

Apache Cassandra配置文件位于/etc/cassandra下,Java启动可以在/etc/default/cassandra下配置。

7.1、配置存储

这一步骤适用于希望将辅助磁盘配置为Apache Cassandra存储的用户。默认情况下,Apache Cassandra将其数据存储在/var/lib/cassandra。但是,在本指南中,我们将通过在数据存储的路径上安装外部磁盘来配置此存储。

首先,确定辅助连接的存储:

$ lsblk

\

这里,辅助磁盘是/dev/sda。使用mkfs命令将磁盘格式化为EXT4:

sudo mkfs.ext4 /dev/sda

样本输出

mke2fs 1.45.6

Discarding device blocks: done

Creating filesystem with 5242880 4k blocks and 1310720 inodes

Filesystem UUID: 5c3c4032-637b-4e07-9772-83fe0425a6bd

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

验证分区是否已创建:

$ lsblk -f

\

现在,我们将把这个磁盘装载到/var/lib/cassandra,如下所示:

sudo cp -r /var/lib/cassandra /var/lib/cassandra.bak

sudo mount /dev/sda /var/lib/cassandra

验证安装:

$ df -hT -P /var/lib/cassandra

\

还原备份并设置正确的权限:

sudo mv/var/lib/cassandra.bak/*/var/lib/cassandra

sudo chown-R cassandra:cassandra/var/lib/cassandra

现在,按以下方式配置永久安装:

$ sudo vim /etc/fstab

/dev/sda /var/lib/cassandra ext4 defaults 0 0

现在,我们将辅助存储配置为Apache Cassandra数据存储。要应用更改,请重新启动Cassandra:

sudo systemctl restart cassandra

7.2、更改群集名称

配置完成后,使用以下命令切换到CQL Shell:

cqlsh

样本输出:

\

使用以下步骤更改群集名称。

首先,在CQL Shell中运行以下命令:

UPDATE system.local SET cluster_name = 'My CLuster' WHERE KEY = 'local';

退出shell:

exit;

现在编辑下面的Cassandra文件:

sudo vi /etc/cassandra/default.conf/cassandra.yaml

将群集名称替换为集合名称,如下所示:

# The name of the cluster. This is mainly used to prevent machines in

# one logical cluster from joining another.

cluster_name: 'My CLuster'

现在重新启动服务:

nodetool flush system

sudo systemctl restart cassandra

验证是否进行了更改:

cqlsh

进入shell后,使用下面的命令检查集群名称:

DESC CLUSTER

样本输出:

\

7.3、启用用户身份验证

我们将首先对可用文件进行备份,然后再对其进行编辑:

sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup

现在打开文件:

sudo vi /etc/cassandra/conf/cassandra.yaml

要启用用户身份验证,请进行以下更改:

authenticator: org.apache.cassandra.auth.PasswordAuthenticator

authorizer: org.apache.cassandra.auth.CassandraAuthorizer

roles_validity_in_ms: 0

permissions_validity_in_ms: 0

保存文件并重新启动Cassandra:

sudo systemctl restart cassandra

7.4、为数据库创建管理员用户

首先使用默认用户凭据登录shell,如下所示:

cqlsh -u cassandra -p cassandra

现在使用以下命令创建一个用户,并适当替换:

CREATE ROLE user1 WITH PASSWORD = 'Passw0rd' AND SUPERUSER = true AND LOGIN = true;

记住用首选用户凭据替换user1和Passw0rd。创建后,退出shell:

exit;

现在尝试使用创建的用户登录:

cqlsh -u user1 -p Passw0rd

样本输出:

\

一旦进入shell,就可以禁用默认超级用户权限:

ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;

现在向创建的用户授予所有权限:

GRANT ALL PERMISSIONS ON ALL KEYSPACES TO 'user1';

exit;

7.5、远程访问Apache Cassandra

默认情况下,Apache Cassandra设置为侦听本地主机。但是,您可以通过如下方式调整配置文件,将其配置为远程访问:

sudo vi /etc/cassandra/default.conf/cassandra.yaml

在文件中,进行以下更改:

# For security reasons, you should not expose this port to the internet.  Firewall it if needed.

rpc_address: 192.168.205.3

保存文件并重新启动Cassandra:

sudo systemctl restart cassandra

验证服务是否正在侦听设置的IP地址:

$ sudo ss -plunt|grep 9042

tcp   LISTEN 0      128     192.168.205.3:9042       0.0.0.0:*    users:(("java",pid=39432,fd=261))

允许端口通过防火墙:

sudo firewall-cmd --permanent --add-port=9042/tcp

sudo firewall-cmd --reload

现在在安装了cqlsh的远程系统上测试连接:

cqlsh -u user1 192.168.205.3

样本输出:

\

至此,在Alma Linux 8、Oracle Linux 8上安装和配置Apache Cassandra完成。此外,我们已将辅助磁盘配置为Apache Cassandra数据存储,并启用了远程访问。现在,您可以继续对Cassandra执行水平缩放。