• 分布式 PostgreSQL 集群(Citus)官方安装指南


    单节点 Citus

    Docker (Mac 与 Linux)

    Docker 镜像仅用于开发/测试目的, 并且尚未准备好用于生产用途。

    您可以使用一个命令在 Docker 中启动 Citus

    # start the image
    docker run -d --name citus -p 5432:5432 -e POSTGRES_PASSWORD=mypass \
               citusdata/citus:10.2
    
    # verify it's running, and that Citus is installed:
    psql -U postgres -h localhost -d postgres -c "SELECT * FROM citus_version();"
    

    您应该会看到最新版本的 Citus

    集群启动并运行后,您可以访问我们关于多租户应用程序实时分析的教程,在几分钟内开始使用 Citus

    如果您的机器上已经运行了 PostgreSQL,则在启动 Docker 容器时可能会遇到此错误:

    Error starting userland proxy:
    Bind for 0.0.0.0:5432: unexpected error address already in use
    

    这是因为 Citus 镜像尝试绑定到标准 PostgreSQL 端口 5432。要解决此问题,请使用 -p 选项选择不同的端口。您还需要在下面的 psql 命令中使用新端口。

    Ubuntu 或 Debian

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

    1. 安装 PostgreSQL 14Citus 扩展
    # Add Citus repository for package manager
    curl https://install.citusdata.com/community/deb.sh | sudo bash
    
    # install the server and initialize db
    sudo apt-get -y install postgresql-14-citus-10.2
    

    2.初始化集群

    让我们在磁盘上创建一个新数据库。为了方便使用 PostgreSQL Unix domain socket 连接,我们将使用 postgres 用户。

    # this user has access to sockets in /var/run/postgresql
    sudo su - postgres
    
    # include path to postgres binaries
    export PATH=$PATH:/usr/lib/postgresql/14/bin
    
    cd ~
    mkdir citus
    initdb -D citus
    

    Citus 是一个 Postgres 扩展。要告诉 Postgres 使用这个扩展,你需要将它添加到一个名为 shared_preload_libraries 的配置变量中:

    echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf
    

    3.启动数据库服务器

    最后,我们将为新目录启动一个 PostgreSQL 实例:

    pg_ctl -D citus -o "-p 9700" -l citus_logfile start
    

    上面您将 Citus 添加到 shared_preload_libraries。这让它可以连接到 Postgres 的一些深层部分,交换查询计划器(query planner)执行器(executor)。在这里,我们加载 Citus 面向用户的一面(例如您将很快调用的函数):

    psql -p 9700 -c "CREATE EXTENSION citus;"
    
    1. 验证安装是否成功

    要验证安装是否成功,并且 Citus 已安装:

    psql -p 9700 -c "select citus_version();"
    

    您应该看到 Citus 扩展的详细信息。

    Fedora, CentOS, 或 Red Hat

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

    1. 安装 PostgreSQL 14Citus 扩展
    # Add Citus repository for package manager
    curl https://install.citusdata.com/community/rpm.sh | sudo bash
    
    # install Citus extension
    sudo yum install -y citus102_14
    

    2.初始化集群

    让我们在磁盘上创建一个新数据库。为了方便使用 PostgreSQL Unix domain socket 连接,我们将使用 postgres 用户。

    # this user has access to sockets in /var/run/postgresql
    sudo su - postgres
    
    # include path to postgres binaries
    export PATH=$PATH:/usr/pgsql-14/bin
    
    cd ~
    mkdir citus
    initdb -D citus
    

    Citus 是一个 Postgres 扩展。要告诉 Postgres 使用这个扩展,你需要将它添加到一个名为 shared_preload_libraries 的配置变量中:

    echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf
    

    3.启动数据库服务器

    最后,我们将为新目录启动一个 PostgreSQL 实例:

    pg_ctl -D citus -o "-p 9700" -l citus_logfile start
    

    上面您将 Citus 添加到 shared_preload_libraries。这让它可以连接到 Postgres 的一些深层部分,交换查询计划器(query planner)执行器(executor)。在这里,我们加载 Citus 面向用户的一面(例如您将很快调用的函数):

    psql -p 9700 -c "CREATE EXTENSION citus;"
    
    1. 验证安装是否成功

    要验证安装是否成功,并且 Citus 已安装:

    psql -p 9700 -c "select citus_version();"
    

    您应该看到 Citus 扩展的详细信息。

    在此步骤中,您已完成安装过程并准备好使用 Citus 集群。 为了帮助您入门,我们提供了一个教程,其中包含有关在几分钟内使用示例数据设置 Citus 集群的说明。

    多节点 Citus

    Ubuntu 或 Debian

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

    在所有节点上执行的步骤

    1. 添加仓库
    # Add Citus repository for package manager
    curl https://install.citusdata.com/community/deb.sh | sudo bash
    
    1. 安装 PostgreSQL + Citus 并初始化数据库
    # install the server and initialize db
    sudo apt-get -y install postgresql-14-citus-10.2
    
    # preload citus extension
    sudo pg_conftool 14 main set shared_preload_libraries citus
    

    这会在 /etc/postgresql/14/main 中安装集中配置,并在 /var/lib/postgresql/14/main 中创建数据库。

    1. 配置连接和认证

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

    sudo pg_conftool 14 main set listen_addresses '*'
    
    sudo vi /etc/postgresql/14/main/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
    

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

    1. 启动数据库服务器,创建 Citus 扩展
    # start the db server
    sudo service postgresql restart
    # and make it start automatically when computer does
    sudo update-rc.d postgresql enable
    

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

    # add the citus extension
    sudo -i -u postgres psql -c "CREATE EXTENSION citus;"
    

    在 coordinator 节点上执行的步骤

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

    1. 添加 worker 节点信息

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

    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);"
    
    1. 验证安装是否成功

    为了验证安装是否成功,我们检查 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
    

    Fedora、CentOS 或 Red Hat

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

    在所有节点上执行的步骤

    1. 添加仓库
    # Add Citus repository for package manager
    curl https://install.citusdata.com/community/rpm.sh | sudo bash
    
    1. 安装 PostgreSQL + Citus 并初始化数据库
    # install PostgreSQL with Citus extension
    sudo yum install -y citus102_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 命令来管理服务器本身。

    1. 配置连接和认证

    在启动数据库之前,让我们更改其访问权限。默认情况下,数据库服务器仅侦听 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
    

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

    1. 启动数据库服务器,创建 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 节点上执行的步骤

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

    1. 添加 worker 节点信息

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

    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);"
    
    1. 验证安装是否成功

    为了验证安装是否成功,我们检查 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
    

    更多

  • 相关阅读:
    ModelScope-agent体验
    CA周记 - 带你进⼊ OpenAI 的世界
    一、了解 Servlet 及 Servlet 容器
    《微服务实战》 第十八章 Redis查看配置文件和数据类型
    EPICS记录参考--Waveform记录(waveform)
    为什么建议你做自动化邮件营销?
    Spark 3.0 - 8.ML Pipeline 之决策树原理与实战
    【数据结构】查找— —树表的查找(二叉排序树、平衡二叉树)
    【ACWing】3095. 冻结
    [已解决]安装的明明是pytorch-gpu,但是condalist却显示cpu版本,而且torch.cuda.is_available 也是flase
  • 原文地址:https://www.cnblogs.com/hacker-linner/p/16029969.html