Apache Cassandra 安装指南 Linux (阿尔玛Linux)

Apache Cassandra 是一个高度健壮的开源分布式 NoSQL 数据库管理系统,旨在跨许多传统服务器处理大量数据,同时保持高可用性并消除单点故障。 它是一个 Apache 软件基础 通常用于跨多个标准服务器组织和存储结构化数据。 本文讨论成功安装所需的先决条件、安装步骤和配置功能 Apache 安装 Cassandra 阿尔玛Linux

查看 Liquid Web 的网络托管选项

你可以从那开始 Apache 按照本文中描述的步骤在 AlmaLinux 上安装 Cassandra。

要求

  • 操作系统及版本: AlmaLinux操作系统8。
  • 系统访问: 确保您已完成此操作 或者 sudo 访问安装和配置 Apache 卡桑德拉。

第1步:运行DNF更新

1.1. 您可以使用系统更新命令来确认所有已安装的软件包都是最新的并更新其存储库缓存:

sudo dnf update

1.2. 您现在可以使用以下命令安装 EPEL 存储库和 PowerTools:

sudo dnf install yum-utils
sudo dnf install epel-release
sudo dnf config-manager --set-enabled powertools

步骤 2:安装默认的 Java OpenJDK

2.1. 这 Apache Cassandra 安装需要 Java。 安装 OpenJDK,通常与 Cassandra 一起使用。 可以使用以下命令安装OpenJDK:

sudo dnf install java-11-openjdk

2.2. 安装OpenJDK后,使用以下命令检查版本:

java --version

2.3. 这是输出:

]# java --version
openjdk 11.0.21 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-1) (build 11.0.21+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-1) (build 11.0.21+9-LTS, mixed mode, sharing)

步骤 3. 添加 Apache 卡桑德拉存储库

Apache Cassandra 安装包不包含在默认的 AlmaLinux 8 包存储库中,必须添加。 从官方存储库安装 Cassandra 的主要优点是我们可以使用简单的更新命令安全地获取最新的软件更新。 最新的 Apache Cassandra 版本可以在 正式 Apache Cassandra安装网站。 出于本教程的目的: Apache 使用Cassandra 4.1版本。

3.1. 首先,使用您最喜欢的编辑器创建存储库:

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

3.2. 将以下行添加到文件中:

[cassandra]
name=Apache Cassandra
baseurl=https://redhat.cassandra.apache.org/41x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS

3.3. 然后使用以下命令保存文件并刷新存储库缓存:

sudo dnf update

步骤 4. 安装最新版本 Apache AlmaLinux 上的 Cassandra 版本

4.1. 添加存储库后,我们可以轻松使用DNF包管理器安装最新版本 Apache AlmaLinux 8 上的 Cassandra:

sudo dnf install cassandra

4.2. 这是输出:

~]# sudo dnf install cassandra
Last metadata expiration check: 0:08:11 ago on Thu 16 Nov 2023 01:51:19 AM UTC.
Dependencies resolved.
==============================================================================================================================================================================================================================================
 Package                                                    Architecture                                            Version                                                  Repository                                                  Size
==============================================================================================================================================================================================================================================
Installing:
 cassandra                                                  noarch                                                  4.1.3-1                                                  cassandra                                                   46 M

Transaction Summary
==============================================================================================================================================================================================================================================
Install  1 Package

Total download size: 46 M
Installed size: 56 M
Is this ok [y/N]: y
Downloading Packages:
cassandra-4.1.3-1.noarch.rpm                                                                                                                                                                                   17 MB/s |  46 MB     00:02    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                          17 MB/s |  46 MB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                      1/1 
  Running scriptlet: cassandra-4.1.3-1.noarch                                                                                                                                                                                             1/1 
  Installing       : cassandra-4.1.3-1.noarch                                                                                                                                                                                             1/1 
  Running scriptlet: cassandra-4.1.3-1.noarch                                                                                                                                                                                             1/1 
  Verifying        : cassandra-4.1.3-1.noarch                                                                                                                                                                                             1/1 

Installed:
  cassandra-4.1.3-1.noarch                                                                                                                                                                                                                    

Complete!

步骤 5. 启动并激活 Apache 卡桑德拉服务

5.1. 安装后我们必须启动并激活它 Apache Cassandra 服务在系统启动时自动运行。 这可以通过以下命令来完成:

sudo systemctl start cassandra
sudo systemctl enable cassandra

步骤 6. 检查 Apache Cassandra 安装正在运行

6.1. 检查当前状态 Apache 卡桑德拉,使用以下命令:

sudo systemctl status cassandra

6.2. 这是输出:

]# sudo systemctl status  cassandra
● cassandra.service - LSB: distributed storage system for structured data
   Loaded: loaded (/etc/rc.d/init.d/cassandra; generated)
   Active: active (running) since Thu 2023-11-16 02:05:01 UTC; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 48829 ExecStop=/etc/rc.d/init.d/cassandra stop (code=exited, status=0/SUCCESS)
  Process: 48867 ExecStart=/etc/rc.d/init.d/cassandra start (code=exited, status=0/SUCCESS)
 Main PID: 48976 (java)
    Tasks: 30 (limit: 11968)
   Memory: 1.2G
   CGroup: /system.slice/cassandra.service
           └─48976 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-2.el8.x86_64/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+Resize>

6.3. 还要检查是否 Apache Cassandra 安装是通过以下方式进行的: 本地主机:9042, 如下所示。 记得等到 Apache Cassandra 已加载所有模块:

nodetool status

6.4. 这是输出:

]# 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  125.41 KiB  16      100.0%            9f81a238-fdeb-4430-9b0d-e6e664c13f14  rack1

步骤7.检查主要配置文件

7.1. 这 Apache Cassandra 数据存储在现场 /var/lib/卡桑德拉而配置文件位于 /etc/卡桑德拉。 这 /etc/默认/卡桑德拉 该文件允许设置 Java 启动参数。

7.2. 数据库只能监听 本地主机 默认情况下; 但是,如果你想使用客户端连接 Apache 要远程安装Cassandra,我们需要通过修改文件来配置它 /etc/cassandra/default.conf/cassandra.yaml

步骤 8. 关于 Apache Cassandra 查询语言 (CQL)

Apache Cassandra 查询语言 (CQL)是一种用于交互的查询语言 Apache Cassandra NoSQL 数据库。 CQL旨在提供类似SQL的接口,让熟悉关系数据库的开发人员更加熟悉。 然而,值得注意的是,虽然 CQL 与 SQL 有一些相似之处,但它也具有针对 SQL 的分布式和 NoSQL 性质而定制的不同特征 Apache 卡桑德拉。

8.1. 审问 Apache Cassandra 从终端使用命令行工具 青青山随之而来的 Apache 卡桑德拉包。 要使用,AlmaLinux系统上必须安装至少一个Python 2软件包。

8.2. 在本文中我们将安装 Python 3.9安装如下:

sudo dnf install python39

8.3. 如下所示,如果您有不同的Python版本,则应设置默认的Python版本。

8.4. 安装Python后,使用以下命令检查版本:

python3 --version

8.5。 这是输出:

]# python3 --version
Python 3.9.16

8.6。 接下来,安装 青青山 带 PIP 的工具:

pip3 install --user cqlsh

8.7. 这是输出:

]# pip3 install --user cqlsh
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting cqlsh
  Downloading cqlsh-6.1.2-py3-none-any.whl (110 kB)
     |████████████████████████████████| 110 kB 7.0 MB/s 
Collecting cassandra-driver
  Downloading cassandra_driver-3.28.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.9 MB)
     |████████████████████████████████| 19.9 MB 55.2 MB/s 
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting geomet<0.3,>=0.1
  Downloading geomet-0.2.1.post1-py3-none-any.whl (18 kB)
Collecting click
  Downloading click-8.1.7-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 17.1 MB/s 
Installing collected packages: six, click, geomet, cassandra-driver, cqlsh
  WARNING: The script geomet is installed in '/root/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script cqlsh is installed in '/root/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed cassandra-driver-3.28.0 click-8.1.7 cqlsh-6.1.2 geomet-0.2.1.post1 six-1.16.0

8.8。 安装后 青青山使用以下命令检查版本。

cqlsh --version

8.9。 这是输出:

]# cqlsh --version
cqlsh 6.1.0

8.10。 您可以使用以下命令来获取CQLShell 检索:

cqlsh

8.11。 这是输出:

~]# cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5]
Use HELP for help.
cqlsh>

步骤 9:更改集群名称

更新集群名称对于准确识别和管理集群至关重要 Apache 卡桑德拉实例。 将默认集群名称更改为 Apache Cassandra 是一种很好的做法,原因如下:

9.1. 避免冲突

9.1.1. 默认集群名称通常设置为 “测试集群” 但是,如果您的环境中存在多个 Cassandra 集群,则使用相同的默认名称可能会导致冲突。 更改集群名称可确保每个集群都是唯一标识的。

9.2. 防止意外连接

9.2.1. 如果同一网络上有多个同名的集群,节点可能会无意中连接到错误的集群。 更改集群名称有助于防止意外连接到错误的集群。

9.3 安全考虑

9.3.1. 更改集群名称可以为 Cassandra 部署添加唯一性并使其更难以被潜在攻击者预测,从而提高安全性。

9.3.2. 切换到 CQL Shell 并用它更新集群名称 更新 观点:

UPDATE system.local SET cluster_name="Sample Cluster" WHERE KEY = 'local';

9.3.3. 然后离开 Shell:

exit;

9.3.4. 然后在 YAML 配置文件中进行以下更改:

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

9.3.5。 代替 集群名称 与您的集群的名称:

9.3.6。 然后清除缓存并重新启动 Cassandra 服务,如下所示:

nodetool flush system
sudo systemctl restart cassandra

9.3.7. 使用以下命令确保集群名称已更新:

cqlsh
DESC CLUSTER

9.3.8。 这是输出:

]# cqlsh
Connected to Sample Cluster at 127.0.0.1:9042
[cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5]
Use HELP for help.
cqlsh> DESC CLUSTER

Cluster: Sample Cluster
Partitioner: Murmur3Partitioner
Snitch: DynamicEndpointSnitch

cqlsh> 

第10步:启用用户身份验证

10.1. 打开 YAML 配置文件:

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

10.2. 然后在文件中找到以下行并更改值,如下所示:

authenticator: org.apache.cassandra.auth.PasswordAuthenticator
authorizer: org.apache.cassandra.auth.CassandraAuthorizer
roles_validity: 0ms
permissions_validity: 0ms

10.3. 这是输出:

10.4. 接下来,保存文件并重新启动 Apache 卡桑德拉:

sudo systemctl restart cassandra

步骤 11. 添加一个 admin 您的数据库的用户

11.1. 从那开始 Shell 使用下面列出的默认用户凭据:

cqlsh -u cassandra -p cassandra

11.2. 现在使用以下命令创建用户并替换适当的值:

CREATE ROLE sample_cassandra_user WITH PASSWORD = 'strong_@password' AND SUPERUSER = true AND LOGIN = true;

11.3。 记得更换哦 样本_cassandra_用户安全密码 具有首选用户凭据。 请注意,在命令行界面上使用密码是不安全的。 因此,我们建议使用凭据文件来安全地提供密码。

11.4。 创建完成后退出 Shell:

exit;

11.5。 使用新的用户名和密码再次登录:

cqlsh -u sample_cassandra_user -p strong_@password

11.6。 新创建的用户登录后,禁用超级用户或 admin 默认 Cassandra 用户的访问权限:

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

11.7。 然后授予您的用户所有权限:

GRANT ALL PERMISSIONS ON ALL KEYSPACES TO 'sample_cassandra_user';
exit;

11.8。 这是输出:

~]# cqlsh -u cassandra -p cassandra

Warning: Using a password on the command line interface can be insecure.
Recommendation: use the credentials file to securely provide the password.

Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5]
Use HELP for help.
cassandra@cqlsh> CREATE ROLE sample_cassandra_user WITH PASSWORD = 'strong_@password' AND SUPERUSER = true AND LOGIN = true;
cassandra@cqlsh> quit
]#
]#
]# cqlsh -u sample_cassandra_user -p strong_@password

Warning: Using a password on the command line interface can be insecure.
Recommendation: use the credentials file to securely provide the password.

Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5]
Use HELP for help.
sample_cassandra_user@cqlsh> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;
sample_cassandra_user@cqlsh> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO 'sample_cassandra_user';
sample_cassandra_user@cqlsh> exit;
]#
]#
]# cqlsh -u cassandra -p cassandra

Warning: Using a password on the command line interface can be insecure.
Recommendation: use the credentials file to securely provide the password.

Connection error: ('Unable to connect to any servers', {'127.0.0.1:9042': AuthenticationFailed('Failed to authenticate to 127.0.0.1:9042: Error from server: code=0100 [Bad credentials] message="cassandra is not permitted to log in"')})

11.9。 要使用凭据文件,您可以按照以下部分中的步骤操作。

11.9.1。 创建一个文件来存储您的凭据。 例如,您可以使用名为 cqlshrc:

touch ~/.cqlshrc

11.9.2。 在文本编辑器中打开文件:

nano ~/.cqlshrc

11.9.3。 将以下详细信息添加到文件中,并将 和 替换为您的实际 Cassandra 用户名和密码:

[authentication]
username = <Your_username>
password = <Your_password>

11.9.4。 保存文件后,退出文本编辑器。

11.9.5。 确保该文件具有适当的权限来保护您的凭据:

chmod 600 ~/.cqlshrc

11.9.6。 嗯,使用的时候 cqlsh, 你可以忽略它 -u-P 选项和 青青山 从文件中读取凭据:

cqlsh

如何更新您的 Apache AlamLinux 上的 Cassandra 安装

运行“系统更新和更新”命令将获取并安装最新版本更新,因为我们通过添加其存储库安装了此 NoSQL 数据库。

sudo dnf update && sudo dnf upgrade

如何卸载或删除您的 Apache 卡桑德拉安装

如果你想删除它 Apache 从您的AlmaLinux系统安装Cassandra,使用包管理器:

sudo dnf remove cassandra

然后删除 Apache 卡桑德拉存储库:

rm /etc/yum.repos.d/cassandra.repo

总结

提供一个 Apache 通过在AlmaLinux上安装Cassandra,您可以显着提高数据管理能力并提供可扩展且高度可用的分布式数据库解决方案。 安装过程会仔细考虑系统要求、依赖性和配置设置。 通过遵循本文中推荐的步骤和最佳实践,您可以确保顺利高效的部署。

联系我们的团队

选择托管计划时 Apache Cassandra,Liquid Web 的计划应该根据其优点进行评估。 我们提供多种适合个人需求的计划 Apache Cassandra 的安装基于我们在托管托管服务方面的专业知识。 我们对性能、安全性和支持的承诺使我们成为为其 Cassandra 数据库寻求稳定托管环境的公司或个人的绝佳选择。 通过结合以下功能,您可以为分布式数据库需求创建坚实而有效的基础: Apache AlmaLinux 上的 Cassandra 具有 Liquid Web 托管服务。 协作使您能够利用可扩展的高性能数据库解决方案,同时专注于主要业务运营。