基于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
相关产品推荐
相关产品推荐

