在 CentOS Stream 8 中安装和配置 Cassandra

本文将介绍如何在 CentOS Stream 8 系统上安装和配置 Cassandra,以及如何使用基本的命令操作 Cassandra 数据库。

发布于

Cassandra 是一个分布式的 NoSQL 数据库,它可以提供高可用性,高性能,高扩展性和容错性。Cassandra 可以在多个节点上存储和查询大量的结构化和非结构化的数据。本文将介绍如何在 CentOS Stream 8 系统上安装和配置 Cassandra,以及如何使用基本的命令操作 Cassandra 数据库。

先决条件

在开始安装和配置 Cassandra 之前,您需要准备以下内容:

  • 一台或多台运行 CentOS Stream 8 的服务器,每台服务器至少有 4 GB 的内存,2 个 CPU 核心,和 50 GB 的磁盘空间。
  • 每台服务器都已经安装了 Java 8 或更高版本,以及 wget 工具。
  • 每台服务器都已经设置了静态 IP 地址,并且可以互相访问。
  • 每台服务器都已经关闭了防火墙,或者开放了 7000,7001,7199,9042,9160 端口。

安装 Cassandra

在每台服务器上,执行以下步骤来安装 Cassandra:

  1. 添加 Cassandra 的官方仓库源。创建一个文件 /etc/yum.repos.d/cassandra.repo,并在其中添加以下内容:

    [cassandra]
    name=Apache Cassandra
    baseurl=https://www.apache.org/dist/cassandra/redhat/311x/
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://www.apache.org/dist/cassandra/KEYS
    
  2. 使用 dnf 命令安装 Cassandra:

    sudo dnf install cassandra -y
    
  3. 启动 Cassandra 服务,并设置为开机自启动:

    sudo systemctl start cassandra
    sudo systemctl enable cassandra
    
  4. 验证 Cassandra 是否安装成功。使用 nodetool 命令查看当前节点的状态:

    nodetool status
    

    如果看到类似以下的输出,说明 Cassandra 已经成功安装并运行:

    Datacenter: datacenter1
    =======================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address    Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  127.0.0.1  103.77 KiB  256          100.0%            3a5f9b3a-1c8e-4a0d-8f6a-9c7c0a0f0a8c  rack1
    

配置 Cassandra

如果您只有一台服务器,那么 Cassandra 的默认配置就可以满足您的需求。但是,如果您有多台服务器,那么您需要修改一些配置来实现集群的功能。在每台服务器上,执行以下步骤来配置 Cassandra:

  1. 编辑 Cassandra 的主配置文件 /etc/cassandra/conf/cassandra.yaml,并修改以下内容:

    • cluster_name:为您的集群设置一个唯一的名称,比如 “My Cassandra Cluster”。所有节点必须使用相同的名称。
    • seeds:设置您的集群中的种子节点,即其他节点可以通过它们发现集群的节点。您可以选择一台或多台服务器作为种子节点,比如 “192.168.1.1,192.168.1.2”。所有节点必须使用相同的种子节点列表。
    • listen_address:设置当前节点的 IP 地址,比如 “192.168.1.1”。每个节点必须使用自己的 IP 地址。
    • rpc_address:设置当前节点的 IP 地址,比如 “192.168.1.1”。每个节点必须使用自己的 IP 地址。
    • endpoint_snitch:设置当前节点的数据中心和机架信息,以便 Cassandra 可以优化数据的复制和读取。您可以使用 SimpleSnitchGossipingPropertyFileSnitch,或者其他可用的选项。如果您使用 GossipingPropertyFileSnitch,那么您还需要编辑 /etc/cassandra/conf/cassandra-rackdc.properties 文件,并设置 dcrack 的值。每个节点必须使用相同的 endpoint_snitch,并根据自己的位置设置 dcrack 的值。
  2. 重启 Cassandra 服务,使配置生效:

    sudo systemctl restart cassandra
    
  3. 验证 Cassandra 的集群是否配置成功。在任意一台服务器上,使用 nodetool 命令查看集群的状态:

    nodetool status
    

    如果看到类似以下的输出,说明 Cassandra 的集群已经成功配置并运行:

    Datacenter: datacenter1
    =======================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  192.168.1.1  103.77 KiB  256          33.3%             3a5f9b3a-1c8e-4a0d-8f6a-9c7c0a0f0a8c  rack1
    UN  192.168.1.2  103.77 KiB  256          33.3%             4b6f9b3a-1c8e-4a0d-8f6a-9c7c0a0f0a8c  rack1
    UN  192.168.1.3  103.77 KiB  256          33.3%             5c7f9b3a-1c8e-4a0d-8f6a-9c7c0a0f0a8c  rack1
    

操作 Cassandra

在安装和配置好 Cassandra 之后,您可以使用一些基本的命令来操作 Cassandra 数据库。以下是一些常用的命令:

  • 启动 Cassandra 服务:

    sudo systemctl start cassandra
    
  • 停止 Cassandra 服务:

    sudo systemctl stop cassandra
    
  • 重启 Cassandra 服务:

    sudo systemctl restart cassandra
    
  • 重新加载 Cassandra 的配置:

    sudo systemctl reload cassandra
    
  • 登录 Cassandra 的命令行界面:

    cqlsh
    
  • 退出 Cassandra 的命令行界面:

    quit
    
  • 在 Cassandra 的命令行界面中,您可以使用 CQL (Cassandra Query Language) 来创建和管理数据库,表,索引,用户,角色等。CQL 的语法类似于 SQL,但有一些区别。您可以参考 CQL 文档 来了解更多的细节。

结论

本文介绍了如何在 CentOS Stream 8 系统上安装和配置 Cassandra,以及如何使用基本的命令操作 Cassandra 数据库。您可以使用 Cassandra 来存储和查询大量的结构化和非结构化的数据,享受分布式数据库的优势。