如何在 AlmaLinux/Rocky Linux 8 上安装 Apache Cassandra
在此页
- 先决条件
- 第 1 步 - 安装 Java
- 第 2 步 - 安装 Apache Cassandra
- 第 3 步 - 安装 Cqlsh
- 第 4 步 - 为 Cassandra 创建一个 Systemd 单元文件
- 第 5 步 - 配置 Cassandra
- 5.1 启用用户身份验证
- 5.1.1 - 添加管理员超级用户
- 5.2 - 编辑控制台配置文件
- 5.3 - 重命名集群
Apache Cassandra 是一个开源的 NoSQL 分布式数据库管理系统。 Cassandra 可以通过添加更多自动复制数据的节点来水平扩展。无需停机即可添加或删除节点。这些节点可以在逻辑上组织成一个集群或一个环,并跨多个数据中心设置,以提高高性能应用程序的速度和可靠性。
在本教程中,我们将学习如何在 AlmaLinux 和 Rocky Linux 8 操作系统上安装 Apache Cassandra。除非另有说明,否则这两个操作系统的命令将是相同的。
先决条件
-
A Server running AlmaLinux or Rocky Linux with a minimum of 2GB of RAM.
-
A non-sudo user with root privileges.
-
Everything is updated.
$ sudo dnf update
第 1 步 - 安装 Java
Apache Cassandra 需要 Java 8 才能运行。最新版本的 Cassandra 包括对 Java 11 的实验性支持,但对于我们的教程,我们将坚持使用 Java 8。
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
确认 Java 安装。
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
第 2 步 - 安装 Apache Cassandra
第一步是添加 Cassandras 官方存储库。
运行以下命令创建存储库文件
/etc/yum.repos.d/cassandra.repo
并输入详细信息。$ sudo tee /etc/yum.repos.d/cassandra.repo <<EOF > [cassandra] > name=Apache Cassandra > baseurl=https://www.apache.org/dist/cassandra/redhat/40x/ > gpgcheck=1 > repo_gpgcheck=1 > gpgkey=https://www.apache.org/dist/cassandra/KEYS > EOF
现在已经创建了 repo 文件,安装 Cassandra。
$ sudo dnf install cassandra -y
第 3 步 - 安装 Cqlsh
我们将使用 CQL Shell (cqlsh) 工具与 Cassandra 进行交互。该工具与 Python 2.7 或 Python 3.6+ 兼容。对于我们的教程,我们将使用 Python 3.8。安装 Python 3.8。
$ sudo dnf install python38
将 Python 3.8 设置为默认的 Python 版本。
$ sudo update-alternatives --config python There are 3 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8 Enter to keep the current selection[+], or type selection number: 3
您将看到多个选项。在我们的案例中,我们将选择数字 3 将 Python 3.8 设置为默认版本。
确认 Python 安装。
$ python --version Python 3.8.8
使用
update-alternatives
实用程序后,您不需要使用python3
命令。使用 pip Python 包管理器安装 cqlsh。
$ pip3 install --user cqlsh
确认 cqlsh 安装。
$ cqlsh --version cqlsh 6.0.0
第 4 步 - 为 Cassandra 创建一个 Systemd Unit 文件
创建并打开
/etc/systemd/system/cassandra.service
进行编辑。$ sudo nano /etc/systemd/system/cassandra.service
将以下代码粘贴到其中。
[Unit] Description=Apache Cassandra After=network.target [Service] PIDFile=/var/run/cassandra/cassandra.pid User=cassandra Group=cassandra ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid Restart=always [Install] WantedBy=multi-user.target
通过按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
重新加载服务守护进程。
$ sudo systemctl daemon-reload
启用并启动 Cassandra 服务。
$ sudo systemctl enable cassandra --now
检查服务的状态。
$ sudo systemctl status cassandra ? cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-12-30 11:07:43 UTC; 12s ago Main PID: 4679 (java) Tasks: 48 (limit: 23696) Memory: 1.3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
您还可以使用
nodetool
命令验证状态。$ 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 69.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1
第 5 步 - 配置 Cassandra
Cassandra 配置文件的默认位置是
/etc/cassandra
。日志和数据目录的默认位置是/var/log/cassandra
和/var/lib/cassandra
。堆大小等 JVM 级别设置可以通过
/etc/cassandra/conf/cassandra-env.sh
文件进行设置。您可以将其他 JVM 命令行参数传递给JVM_OPTS
变量。参数在 Cassandra 启动时传递给它。5.1 启用用户认证
要启用用户身份验证,首先,备份
/etc/cassandra/conf/cassandra.yaml
文件。$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
打开
cassandra.yaml
文件进行编辑。$ sudo nano /etc/cassandra/conf/cassandra.yaml
在此文件中找到以下参数。
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
如下所示更改参数值。
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
您可以根据您的要求配置其他设置。如果他们被评论,那么取消他们的评论。
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
重新启动 Cassandra 以启用更改的设置。
$ sudo systemctl restart cassandra
5.1.1 - 添加管理员超级用户
现在我们已经启用了身份验证,我们需要创建一个用户。为此,我们将使用 Cassandra Command shell 实用程序。使用默认用户
cassandra
的凭据登录。$ cqlsh -u cassandra -p cassandra
创建一个新的超级用户。将
[username]
和[yourpassword]
替换为您的凭据。> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
登出。
> exit
使用新的超级用户帐户重新登录。
$ cqlsh -u username -p yourpassword
从默认
cassandra
帐户中删除提升的权限。> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; > REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
授予超级用户帐户所有权限。
> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
登出。
> exit
5.2 - 编辑控制台配置文件
如果要自定义 Cassandra Shell,可以通过编辑
cqlshrc
文件来实现。该文件的默认位置在~/.cassandra
目录中。如果你想从不同的目录加载它,你可以在运行时将参数--cqlshrc /customdirectory
传递给cqlsh
工具。您可以在
/etc/cassandra/conf/cqlshrc.sample
找到示例文件,其中包含您可以配置的有关 Cassandra Shell 的所有设置。将示例文件复制并重命名为
~/.cassandra
目录。$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
使用所需的权限更新
cqlshrc
文件。$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
打开文件进行编辑。
$ nano ~/.cassandra/cqlshrc
我们将配置 shell 以使用超级用户凭据自动登录。找到以下部分并填写您的用户名和密码。
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
编辑您要更改的任何其他设置。一些设置使用
;;
进行注释。通过删除双分号取消注释,然后进行更改。完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
使用您的新更改登录到 Cassandra shell。
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
5.3 - 重命名集群
最后,我们将集群名称从 Test Cluster 重命名为您选择的名称。
登录到
cqlsh
终端。$ cqlsh
在以下命令中将
[clustername]
替换为您的新集群名称。> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
退出外壳
> exit
打开文件
/etc/cassandra/conf/cassandra.yaml
进行编辑。$ sudo nano /etc/cassandra/conf/cassandra.yaml
将变量
cluster_name
的值替换为您选择的名称。... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
清除 Cassandra 系统缓存。
$ nodetool flush system
重新启动卡桑德拉。
$ sudo systemctl restart cassandra
登录到 shell 以查看新名称。
$ cqlsh Connected to HowtoForge Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
结论
在本教程中,您学习了如何在 AlmaLinux 或 Rocky Linux 服务器上安装 Apache Cassandra。您还学习了如何添加用户身份验证和执行一些基本配置。要了解更多信息,请访问官方 Cassandra 文档。如果您有任何问题,请在下面的评论中发表。