Fedora、CentOS 或 Red Hat

本节介绍在您自己的 Linux 机器上使用 RPM 包设置多节点 Citus 集群所需的步骤。

在所有节点上执行的步骤

1. 添加仓库

# Add Citus repository for package manager
curl https://install.citusdata.com/community/rpm.sh | sudo bash

2. 安装 PostgreSQL + Citus 并初始化数据库

# install PostgreSQL with Citus extension
sudo yum install -y citus110_beta_14
# initialize system database (using RHEL 6 vs 7 method as necessary)
sudo service postgresql-14 initdb || sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
# preload citus extension
echo "shared_preload_libraries = 'citus'" | sudo tee -a /var/lib/pgsql/14/data/postgresql.conf

PostgreSQL 在 /usr/pgsql-14/bin 中添加了特定于版本的二进制文件, 但您通常只需要 psql,它的最新版本已添加到您的路径中,并且可以使用 service 命令来管理服务器本身。

3. 配置连接和认证

在启动数据库之前,让我们更改其访问权限。 默认情况下,数据库服务器仅侦听 localhost 上的客户端。 作为此步骤的一部分,我们指示它侦听所有 IP 接口,然后配置客户端身份验证文件以允许来自本地网络的所有传入连接。

sudo vi /var/lib/pgsql/14/data/postgresql.conf
# Uncomment listen_addresses for the changes to take effect
listen_addresses = '*'
sudo vi /var/lib/pgsql/14/data/pg_hba.conf
# Allow unrestricted access to nodes in the local network. The following ranges
# correspond to 24, 20, and 16-bit blocks in Private IPv4 address spaces.
host    all             all             10.0.0.0/8              trust

# Also allow the host unrestricted access to connect to itself
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust

Note

您的 DNS 设置可能不同。此外,这些设置对于某些环境来说过于宽松, 请参阅我们关于 worker_security 的说明。 PostgreSQL 手册 解释了如何 使它们更具限制性。

4. 启动数据库服务器,创建 Citus 扩展

# start the db server
sudo service postgresql-14 restart
# and make it start automatically when computer does
sudo chkconfig postgresql-14 on

您必须将 Citus 扩展添加到要在集群中使用的 每个数据库。 以下示例将扩展名添加到名为 postgres 的默认数据库中。

sudo -i -u postgres psql -c "CREATE EXTENSION citus;"

在协调器节点上执行的步骤

下面列出的步骤必须 在执行了前面提到的步骤之后在 coordinator 节点上执行。

1. 添加 worker 节点信息

我们需要通知 coordinator 有关其 worker 的信息。 为了添加这些信息,我们调用一个 UDF,它将节点信息添加到 pg_dist_node 目录表中。 对于我们的示例,我们假设有两个 worker(名为 worker-101,worker-102)。 将 worker 的 DNS 名称(或 IP 地址)和服务器端口添加到表中。

# Register the hostname that future workers will use to connect
# to the coordinator node.
#
# You'll need to change the example, 'coord.example.com',
# to match the actual hostname

sudo -i -u postgres psql -c \
  "SELECT citus_set_coordinator_host('coord.example.com', 5432);

# Add the worker nodes.
#
# Similarly, you'll need to change 'worker-101' and 'worker-102' to the
# actual hostnames

sudo -i -u postgres psql -c "SELECT * from citus_add_node('worker-101', 5432);"
sudo -i -u postgres psql -c "SELECT * from citus_add_node('worker-102', 5432);"

2. 验证安装是否成功

为了验证安装是否成功,我们检查 coordinator 节点是否选择了所需的工作配置。 这个命令在 psql shell 中运行时应该输出我们添加到上面 pg_dist_node 表中的 worker 节点。

sudo -i -u postgres psql -c "SELECT * FROM citus_get_active_worker_nodes();"

准备使用 Citus

在此步骤中,您已完成安装过程并准备好使用 Citus 集群。可以通过 postgres 用户在 psql 中访问新的 Citus 数据库:

sudo -i -u postgres psql