You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于CentOS 7的Greenplum安装失败求助:求安装笔记与指南

Greenplum 6.x 基于CentOS7的集群安装指南(适配2CPU/4GB内存节点)

针对3台节点规划:1台Master、2台Segment,主机名示例为gp-master、gp-seg1、gp-seg2,需替换为自身实际IP/主机名。


一、全节点前置环境配置(所有节点执行)

1. 关闭防火墙与SELinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

2. 配置主机名与Hosts解析

  • 设置主机名(单节点执行对应命令):
    # Master节点
    hostnamectl set-hostname gp-master
    # Segment1节点
    hostnamectl set-hostname gp-seg1
    # Segment2节点
    hostnamectl set-hostname gp-seg2
    
  • 所有节点编辑/etc/hosts,添加:
    192.168.1.100 gp-master
    192.168.1.101 gp-seg1
    192.168.1.102 gp-seg2
    

3. 创建Greenplum专属用户

groupadd gpadmin
useradd -g gpadmin gpadmin
passwd gpadmin  # 设置登录密码,示例:gpadmin123

4. 配置Master无密码SSH登录所有节点

切换到gpadmin用户:

su - gpadmin
ssh-keygen -t rsa -P ''  # 按回车跳过所有输入
ssh-copy-id gpadmin@gp-master
ssh-copy-id gpadmin@gp-seg1
ssh-copy-id gpadmin@gp-seg2

测试:执行ssh gp-seg1,无需输入密码即可登录则配置成功。

5. 调整系统内核参数与资源限制

  • 编辑/etc/sysctl.conf,添加:

    kernel.sem = 500 2048000 200 4096
    kernel.shmmax = 4294967296  # 对应4GB内存的40%上限
    kernel.shmmni = 4096
    kernel.shmall = 1073741824
    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.core.netdev_max_backlog = 10000
    net.core.rmem_max = 2097152
    net.core.wmem_max = 2097152
    vm.overcommit_memory = 2
    vm.swappiness = 10
    

    生效命令:sysctl -p

  • 编辑/etc/security/limits.conf,添加:

    gpadmin soft nofile 65536
    gpadmin hard nofile 65536
    gpadmin soft nproc 131072
    gpadmin hard nproc 131072
    

6. 安装依赖包

yum install -y epel-release
yum install -y bzip2 curl krb5-devel libcurl-devel libevent-devel libxml2-devel libyaml-devel openldap-devel openssl-devel perl python-devel readline-devel rsync R sed tar zip zlib-devel

7. 禁用透明大页

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 配置开机生效
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local

二、Master节点安装Greenplum软件

1. 部署软件包

获取Greenplum 6.x的CentOS7版本安装包(如gpdb-6.22.0-rhel7-x86_64.tar.gz),切换到gpadmin用户执行:

su - gpadmin
mkdir -p /opt/greenplum
tar -zxf gpdb-6.22.0-rhel7-x86_64.tar.gz -C /opt/greenplum
ln -s /opt/greenplum/gpdb-6.22.0 /opt/greenplum/gpdb

2. 配置环境变量

编辑gpadmin用户的~/.bashrc,添加:

export GPHOME=/opt/greenplum/gpdb
export PATH=$GPHOME/bin:$GPHOME/ext/python/bin:$PATH
export LD_LIBRARY_PATH=$GPHOME/lib:$LD_LIBRARY_PATH
export GPADMIN_USER=gpadmin
export MASTER_DATA_DIRECTORY=/data/gpdata/master
export PGPORT=5432

生效命令:source ~/.bashrc

3. 同步软件到所有Segment节点

创建节点列表文件~/hostlist,内容:

gp-master
gp-seg1
gp-seg2

执行同步命令:

# 复制软件包
gpscp -f /home/gpadmin/hostlist /opt/greenplum/gpdb-6.22.0 =:/opt/greenplum/
# 创建软链接
gpssh -f /home/gpadmin/hostlist -e "ln -s /opt/greenplum/gpdb-6.22.0 /opt/greenplum/gpdb"
# 同步环境变量
gpscp -f /home/gpadmin/hostlist ~/.bashrc =:/home/gpadmin/
gpssh -f /home/gpadmin/hostlist -e "source ~/.bashrc"

三、集群初始化

1. 创建数据目录

gpssh -f /home/gpadmin/hostlist -e "mkdir -p /data/gpdata/master /data/gpdata/primary"

2. 编写初始化配置文件

创建~/gp_init_config,内容:

ARRAY_NAME="Greenplum Cluster"
MACHINE_LIST_FILE=/home/gpadmin/hostlist
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/gpdata/primary)
MASTER_HOSTNAME=gp-master
MASTER_DIRECTORY=/data/gpdata/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE

3. 执行初始化

gpinitsystem -c ~/gp_init_config -h /home/gpadmin/hostlist

执行过程中输入y确认操作,等待初始化完成。


四、安装验证

1. 检查集群状态

gpstate

输出中所有Segment状态显示为Up则集群正常。

2. 测试数据库操作

createdb testdb
psql testdb
# 在psql交互界面执行
SELECT version();

输出包含Greenplum版本信息则安装成功。


常见失败排查

  • 初始化失败:检查所有节点数据目录权限,执行gpssh -f hostlist -e "ls -ld /data/gpdata/*",确保所属用户为gpadmin。
  • SSH登录失败:检查gpadmin用户的.ssh目录权限为700,authorized_keys权限为600。
  • 内核参数不生效:执行sysctl -a | grep shmmax验证参数是否正确加载。

内容的提问来源于stack exchange,提问作者Numonjon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:21:01