CentOS7.9下Greenplum6.19集群搭建
在 CentOS 7.9 上搭建 Greenplum 6.19 集群是一个多步骤的过程,涉及系统配置、Greenplum 安装、集群初始化等。以下是详细的步骤指南。
1. 环境准备
1.1 系统要求
-
操作系统:CentOS 7.9
-
内存:至少 16 GB(建议 32 GB 或更多)
-
磁盘空间:至少 50 GB(根据数据量调整)
-
网络:节点之间网络互通,建议使用千兆或更高带宽。
1.2 节点规划
-
Master 节点:1 台(负责协调和管理集群)
-
Segment 节点:至少 2 台(存储和处理数据)
例如:
-
mdw
:Master 节点 -
sdw1
、sdw2
:Segment 节点
2. 系统配置
在所有节点上执行以下操作。
2.1 修改主机名
编辑 /etc/hostname
文件,设置主机名:
bash
复制
sudo vi /etc/hostname
例如:
-
Master 节点:
mdw
-
Segment 节点:
sdw1
、sdw2
2.2 配置 /etc/hosts
编辑 /etc/hosts
文件,添加所有节点的 IP 和主机名映射:
bash
复制
sudo vi /etc/hosts
示例:
复制
192.168.1.101 mdw 192.168.1.102 sdw1 192.168.1.103 sdw2
2.3 关闭防火墙和 SELinux
bash
复制
sudo systemctl stop firewalld sudo systemctl disable firewalld sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
2.4 修改系统参数
编辑 /etc/sysctl.conf
,添加以下内容:
bash
复制
kernel.shmmax = 500000000 kernel.shmmni = 4096 kernel.shmall = 4000000000 kernel.sem = 250 512000 100 2048 kernel.sysrq = 1 kernel.core_uses_pid = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.msgmni = 2048 net.ipv4.tcp_syncookies = 1 net.ipv4.ip_forward = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.conf.all.arp_filter = 1 net.ipv4.ip_local_port_range = 1025 65535 net.core.netdev_max_backlog = 10000 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 vm.overcommit_memory = 2
应用配置:
bash
复制
sudo sysctl -p
2.5 修改用户限制
编辑 /etc/security/limits.conf
,添加以下内容:
bash
复制
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
3. 安装 Greenplum
在 Master 节点上执行以下操作。
3.1 下载 Greenplum
从 Greenplum 官方网站 下载 Greenplum 6.19 的安装包。
3.2 安装依赖
bash
复制
sudo yum install -y epel-release sudo yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh openssl openssl-libs perl readline rsync R sed tar zip
3.3 解压并安装
bash
复制
tar -xzvf greenplum-db-6.19.0-rhel7-x86_64.tar.gz sudo mkdir -p /usr/local/greenplum-db sudo chown -R gpadmin:gpadmin /usr/local/greenplum-db sudo -u gpadmin ./greenplum-db-6.19.0-rhel7-x86_64.bin
3.4 配置环境变量
编辑 ~/.bashrc
,添加以下内容:
bash
复制
source /usr/local/greenplum-db/greenplum_path.sh export MASTER_DATA_DIRECTORY=/data/master/gpseg-1 export PGPORT=5432 export PGUSER=gpadmin export PGDATABASE=postgres
应用配置:
bash
复制
source ~/.bashrc
4. 配置 SSH 免密登录
在 Master 节点上执行以下操作。
4.1 生成 SSH 密钥
bash
复制
sudo -u gpadmin ssh-keygen -t rsa -b 4096
4.2 分发公钥
bash
复制
sudo -u gpadmin ssh-copy-id gpadmin@mdw sudo -u gpadmin ssh-copy-id gpadmin@sdw1 sudo -u gpadmin ssh-copy-id gpadmin@sdw2
4.3 测试 SSH 连接
bash
复制
sudo -u gpadmin ssh sdw1 sudo -u gpadmin ssh sdw2
5. 初始化 Greenplum 集群
在 Master 节点上执行以下操作。
5.1 创建配置文件
创建 hostfile
和 segconfig
文件:
bash
复制
echo "mdw" > hostfile echo "sdw1" >> hostfile echo "sdw2" >> hostfile echo "sdw1" > segconfig echo "sdw2" >> segconfig
5.2 初始化集群
bash
复制
sudo -u gpadmin gpinitsystem -c gpconfig -h hostfile
6. 验证集群
在 Master 节点上执行以下操作。
6.1 检查集群状态
bash
复制
sudo -u gpadmin gpstate
6.2 连接到数据库
bash
复制
sudo -u gpadmin psql -d postgres
6.3 创建测试表
sql
复制
CREATE TABLE test (id int, name text); INSERT INTO test VALUES (1, 'Greenplum'); SELECT * FROM test;
7. 常见问题
-
SSH 连接失败:确保所有节点的 SSH 服务已启动,并且防火墙已关闭。
-
磁盘空间不足:确保每个节点有足够的磁盘空间。
-
集群初始化失败:检查日志文件
/data/master/gpseg-1/pg_log/
中的错误信息