如何在 AlmaLinux/Rocky Linux 8 上安装 Apache Cassandra如何在 AlmaLinux/Rocky Linux 8 上安装 Apache Cassandra如何在 AlmaLinux/Rocky Linux 8 上安装 Apache Cassandra如何在 AlmaLinux/Rocky Linux 8 上安装 Apache Cassandra
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 AlmaLinux/Rocky Linux 8 上安装 Apache Cassandra

在此页

  1. 先决条件
  2. 第 1 步 - 安装 Java
  3. 第 2 步 - 安装 Apache Cassandra
  4. 第 3 步 - 安装 Cqlsh
  5. 第 4 步 - 为 Cassandra 创建一个 Systemd 单元文件
  6. 第 5 步 - 配置 Cassandra
    1. 5.1 启用用户身份验证
    2. 5.1.1 - 添加管理员超级用户
    3. 5.2 - 编辑控制台配置文件
    4. 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 文档。如果您有任何问题,请在下面的评论中发表。

©2015-2025 艾丽卡 support@alaica.com