官方文档:VMware Tanzu™ Greenplum® 6.20 Documentation | Tanzu Greenplum Docs(可以参考)
1、首先确定部署的环境,确定下服务器的端口,一般默认是22的端口;
2、当前这份文档是服务器处于10022端口下部署的(现场生产环境要求,22端口在生产环境存在安全隐患);
3、操作系统Centos7.9;
4、 数据库greenplum-db-6.19.1。
1、本次采用的是4台机器组成的集群:1台机器是master节点,1台机器是standby节点(这个节点相当于master的备用节点),2台机器是segment节点。
2、集群的ip和hostname如下(都是虚拟机环境):
192.168.0.31 mdw(master节点)
192.168.0.32 smdw (standby节点)
192.168.0.33 sdw1 (segment节点)
192.168.0.34 sdw2 (segment节点)
1、配置的时候,要保证所有的机器的网络都是通的,并且每台机器的防火墙都是关闭的,避免存在网络不通的情况。
具体操作:
systemctl stop firewalld (停止防火墙)
systemctl disable firewalld(关闭防火墙)
systemctl status firewalld(查看防火墙状态)
截图如下:

2、具体操作:(每个节点直接执行如下命令)
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
截图如下:

注:执行完也可以直接进入/etc/selinux/config的文件查看是否修改完全。
1、修改/etc/sysctl.conf文件,其中的配置文件是官方配置的。
具体操作:
cat <<EOF > /etc/sysctl.conf
# kernel.shmall = _PHYS_PAGES / 2
kernel.shmall = 742216
# kernel.shmmax = kernel.shmall * PAGE_SIZE
kernel.shmmax = 3040116736
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
net.ipv4.ip_local_port_range = 10000 65535
kernel.sem = 500 2048000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 0 # See System Memory
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296
EOF
截图如下:

2、执行完上述操作后,执行sysctl -p 使配置生效。
具体操作:
sysctl -p
截图如下:

1、主要是为之后 Greenplum 能够在各个节点之间相互通信做准备。
具体操作:
vi /etc/hosts
截图如下:
这个截图是结果

暂无。(个人这边是直接粘贴复制的,直接修改了一个,其他都是直接替换的)
确认是否成功,ping一下即可。
1、每个节点机器的设置内容不同。
具体操作(在其他服务器上执行的话,修改hostname)
截图如下:

注:其他节点都需要修改。
1、具体操作:
cat <<EOF > /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
EOF
截图如下:

1、具体操作:
cat <<EOF >> /etc/ssh/sshd_config
MaxStartups 200
MaxSessions 200
EOF
截图如下:

1、具体操作:
reboot
截图如下:

1、创建 gpadmin 用户及用户组,将其作为安装 greenplum 的操作系统用户。
2、如果已经存在,先删除,
具体操作:
groupdel gpadmin
userdel gpadmin
3、创建新的用户和用户组
具体操作:
groupadd gpadmin
useradd -r -m -g gpadmin gpadmin
passwd gpadmin (设置密码)
截图如下:

1、具体操作:(操作为master节点)
su gpadmin (进入gpadmin用户)
mkdir -p /home/gpadmin/conf(这个部分提前创建,后续会用到)
cd /home/gpadmin/
ssh-keygen -t rsa (生成密钥对)
ssh-copy-id smdw
ssh-copy-id sdw1
ssh-copy-id sdw2
截图如下:




验证如下:在gpadmin用户下,ssh smdw 输入后,无需密码直接登录到了smdw服务器。

问题整理:
是可以访问的。
报错截图:

修改/etc/services文件,将ssh 对应的端口改为10022。
再次验证sss localhost4。
1、在/home/gpadmin/conf的路径下生成 hostlist,seg_hosts文件:
具体操作:
cd /home/gpadmin/conf
vi hostlist
#文件内容
mdw
smdw
sdw1
sdw2
vi seg_hosts
#文件内容
sdw1
sdw2
截图如下:
![]()
1、首先是将greenplum的安装包导入到服务器上(可以新建一个文件夹);、
2、具体操作:
su root (进入root用户)
cd /root/gpadmin (这个安装包的所在位置)
ls (查看安装包,确认位置)
截图如下:

后续安装过程会有一次输入:y (确认操作)


![]()
注:所有节点都需要安装。
具体操作:
su gpadmin
cd /usr/local/greenplum-db-6.19.1/
source /usr/local/greenplum-db-6.19.1/greenplum_path.sh
cd /home/gpadmin/conf
gpssh-exkeys -f hostlist
截图如下:

1、配置环境变量.bashrc
具体操作:
su gpadmin
mkdir -p /home/gpadmin/data/master (这个部分可以提前创建)
cat <<EOF >> /home/gpadmin/.bashrc
source /usr/local/greenplum-db/greenplum_path.sh
export PGPORT=5432
export PGUSER=gpadmin
export MASTER_DATA_DIRECTORY=/app/gpadmin/data/master/gpseg-1(注意:这个路径是我本人放置数据的文件夹;大家可以自行考虑,根据服务器内存调整位置)
export PGDATABASE=gp_sydb
export LD_PRELOAD=/lib64/libz.so.1 ps
EOF
source /home/gpadmin/.bashrc
截图如下:

2、配置环境变量GPHOME,首先进到文件中直接修改
具体操作:
vi /usr/local/greenplum-db/greenplum_path.sh
添加的路径:GPHOME=/usr/local/greenplum-db
截图如下:

1、创建各个节点的数据文件夹,该步骤之后 hostlist 文件包含机器下都会创建 data目录,data目录下都会创建master、primary、mirror文件夹。
具体操作:
gpssh -f /home/gpadmin/conf/hostlist
mkdir data
cd data
mkdir master
mkdir primary
mkdir mirror
exit
截图如下:

1、检查各个节点的连通性
具体操作:
gpcheckperf -f /home/gpadmin/conf/hostlist -r N -d /tmp
截图如下:

1、这里修改初始化文件,首先拷贝一个文件gpinitsystem_config,在修改。
具体操作:
mkdir /home/gpadmin/gpconfigs
cp /usr/local/greenplum/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config (这个部分是一个命令,比较长)
vim /home/gpadmin/gpinitsystem_config
这里先搜索在修改:
# ------------------------以下为配置内容------------------------
# 该项配置设置主节点数据存储位置,括号里边有几个代表每台主机创建几个postgresql数据库实例,即segment的实例数,上边示例是2个。
declare -a DATA_DIRECTORY=(/home/gpadmin/data/primary /home/gpadmin/data/primary)
# 该项配置设置主节点机器名字
MASTER_HOSTNAME=mdw
# 该项配置设置主节点数据存储位置
MASTER_DIRECTORY=/home/gpadmin/data/master
# 该项配置设置是备节点数据存储位置,规则同DATA_DIRECTORY,括号里边数量和DATA_DIRECTORY保持一致。
# greenplum数据分主节点和备节点,主节点挂掉时候备节点数据会启用。
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data/primary /home/gpadmin/data/primary)
# 该项配置设置默认数据库名字,和环境变量数据库名字保持一致,不然会失败。
DATABASE_NAME=gp_sydb
截图如下:

2、在/home/gpadmin/gpconfigs新增一个配置文件hostfile_gpinitsystem
具体操作:
cd /home/gpadmin/gpconfigs
vi hostfile_gpinitsystem
#新增的内容
sdw1
sdw2
截图如下:

1、初始化数据库
具体操作:
gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem
截图如下:




1、如需要Navicat能够链接,需要配置如下:
具体操作:
echo "host all gpadmin 0.0.0.0/0 trust" >> /home/gpadmin/data/master/gpseg-1/pg_hba.conf
截图如下:
结果截图




3、查看集群状态验证,在主节点上操作命令
具体操作:
Gpstate
截图如下:

1、命令如下
• 关闭gpstop
• 启动gpstart
• 状态查看gpstate
• help命令查看所有命令
psql -d postgres 进入psql命令行执行help
\h 查看SQL命令
? 查看psql命令

本次也是记录在4台虚拟机上实现了greenplum集群部署,中间出现了很多问题,也是记录了很多问题:如下
1、在安装完greenplum之后遇上使用greenplum的命令的时候记得看看是否有权限,不然会执行不了。
2、免密搞了很久,中间出现很多问题,ssh-copy-id的这命令有一些机器上没有,其实这也是个执行文件,可以将文件拷贝到/usr/bin/的,赋予权限就是可以使用。
解决办法:https://download.csdn.net/download/msh6453/85425763
3、其中在使用gpssh-exkeys -f 这个命令的时候没办用,环境是:linux的环境是10022端口,这块主要是gpssh-exkeys -f 这个命令安装是默认22端口,所以需要看这个gpssh-exkeys命令的内容修改一下。
4、最后附上Greenplum6.19的rpm包:https://download.csdn.net/download/msh6453/85427261
最后,有问题欢迎大家指正。
本文来源:https://blog.csdn.net/msh6453/article/details/124892605
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69953058/viewspace-3147731/ ,如需转载,请注明出处,否则将追究法律责任。