本次安装主要基于单机GreenPlum进行,操作系统为CentOS 8.1版本。安装过程主要分为操作系统包准备、系统配置、软件安装、存储空间分配和数据库初始化等步骤。
操作系统包准备工作:
首先从https://github.com/greenplum-db/gpdb下载以下文件:
README.CentOS.bashpython-dependencies.txtpython-developer-dependencies.txt
Centos8.1默认没有安装python2的版本,因此需要单独安装python2:
dnf install python2
再执行安装相关的系统包:
/README.CentOS.bash
执行过程中,出现以下错误:
gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
执行以下解决:
dnf install redhat-rpm-config
psutil/_psutil_linux.c:12:10: fatal error: Python.h: No such file or directory
执行以下解决:
dnf install python2-devel
操作系统配置,
主要在操作层面进行系统设置工作,主要包括7个步骤,如下:
1、禁用SELinux:
查看SELinux状态
# sestatus
SELinuxstatus: disabled
若未被禁用,执行如下操作:
vi etc/selinux/config
SELINUX=disabled
2、停用防火墙:
# systemctl status firewalld# systemctl stop firewalld.service# systemctl disable firewalld.service
3、设置diskio
/sbin/blockdev --getra /dev/sdb/sbin/blockdev --setra 16384 /dev/sdb
确保设置一直有效:
vi /etc/rc.d/rc.local/sbin/blockdev --setra 16384 /dev/sdb
4、设置Disk I/O scheduler
建议使用deadline的调度方式,可以针对单独设置启用,也可以在系统级设置。
grubby --update-kernel=ALL --args="elevator=deadline"grubby --info=ALL
5、禁用Transparent Huge Pages(vertica在centos7及以上可以启用该选项)
grubby --update-kernel=ALL --args="transparent_hugepage=never"
6、禁用IPC对象删除。默认的systemd设置RemoveIPC=yes会在非系统用户帐户注销时删除IPC连接,导致Greenplum数据库实用程序gpinitsystem失败,并出现信号量错误。
vi etc/systemd/logind.conf
RemoveIPC=no
重启服务:
service systemd-logind restart
7、设置ssh参数,支持特定的GPDB工具程序,防止被ssh会话超限
vi /etc/ssh/sshd_configMax Startups 10:30:200MaxSessions 200PermitRootLogin yesPubkeyAuthentication yes
重启服务:
service sshd restart
参数调整:
包括系统参数和用户参数两部分,如下:
1、调整系统参数
vi etc/sysctl.confkernel.shmall = 197951838kernel.shmmax = 810810728448kernel.shmmni = 4096vm.overcommit_memory= 2 # SeeSegment Host Memoryvm.overcommit_ratio = 50 # See Segment Host Memory,缺省50,建议95net.ipv4.ip_local_port_range= 10000 65535 # See PortSettingskernel.sem = 500 2048000 200 40960 #比oracle的设置高一大截kernel.sysrq = 1kernel.core_uses_pid= 1kernel.msgmnb =65536kernel.msgmax =65536kernel.msgmni = 2048net.ipv4.tcp_syncookies= 1net.ipv4.conf.default.accept_source_route= 0net.ipv4.tcp_max_syn_backlog= 4096net.ipv4.conf.all.arp_filter= 1net.core.netdev_max_backlog= 10000net.core.rmem_max =2097152net.core.wmem_max =2097152vm.swappiness = 1vm.zone_reclaim_mode= 0vm.dirty_expire_centisecs= 500vm.dirty_writeback_centisecs= 100
内存参数需要根据主机内存大小差异进行不同设置:
# See System Memory
# 64G以上
vm.dirty_background_ratio= 0vm.dirty_ratio = 0vm.dirty_background_bytes= 1610612736vm.dirty_bytes =4294967296
# 64G以下
vm.dirty_background_ratio= 3vm.dirty_ratio = 10
2、用户的打开文件和进程数设置:
vi/etc/security/limits.conf* soft nofile524288* hard nofile 524288* soft nproc 131072* hard nproc 131072
创建GPDB管理用户:
1、默认的管理用户和组为gpadmin。
groupadd gpadmin
useradd gpadmin -r -m -g gpadmin
2、多节点安装设置节点间用户的信任关系。
3、配置sudo访问gpadmin用户:
运行visudo命令,打开以下选项:
%wheel ALL=(ALL) NOPASSWD: ALL
4、将gpadmin增加到wheel组:
usermod -aG wheelgpadmin
安装GPDB软件:
1、进行软件安装
下载greenplum的安装包后,执行:
yuminstall greenplum-db-6.4.0-rhel7-x86_64.rpm
安装包将在/usr/local目录下创建gpdb的相关目录,如下:

将该目录的所有者和组改为gpadmin,安装过程完成。
chown -R gpadmin:gpadmin
针对多节点的环境,官方文档提示在每台主机执行上述过程。
2、配置存储空间目录
由于是单节点的安装,注意将master和segment空间分离。
mkdir dbvol/greenplum/mastersource usr/local/greenplum-db/greenplum_path.shmkdir dbvol/greenplum/datachown -R gpadmin:gpadmin /dbvol/greenplum
数据库初始化:
这个环节是安装过程中遇到问题最多的环节,先讲需要做的工作,再描述下遇到的具体问题。
1、检查/etc/hosts文件,确认已配置。
2、创建gpdb的配置文件:
mkdir /dbvol/greenplum/gpconfigscp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config ./
编辑上述参数配置文件,主要是以下内容:
ARRAY_NAME="Greenplum DataPlatform"SEG_PREFIX=gpsegPORT_BASE=6000#空格间隔,创建2个segment实例declare -a DATA_DIRECTORY=(/dbvol/greenplum/data /dbvol/greenplum/data)MASTER_HOSTNAME=siriusMASTER_DIRECTORY=/dbvol/greenplum/masterMASTER_PORT=5432TRUSTED SHELL=sshCHECK_POINT_SEGMENTS=8ENCODING=UNICODE
编辑主机列表文件,配置主机名:
vi hostfile_gpinitsystemsirius
3、运行初始化工具:
切换到gpadmin用户,运行以下:
source /usr/local/greenplum-db/greenplum_path.shexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
再运行以下命令,进行gp的初始化过程:
gpinitsystem -c ./gpinitsystem_config -h ./hostfile_gpinitsystem
初始化过程中出现以下错误:
1)/usr/local/greenplum-db-6.4.0/bin/postgres: error while loadingshared libraries: libssl.so.10: cannot open shared object file: No such file ordirectory
因为本次安装是基于Centos8.1,缺少libssl.so.10等文件,网上也未找到相关文件,最后是从Centos7.7的系统中获取下述文件,将其复制到/usr/lib64目录下,并创建相应的软链接文件:
libssl.so.10libcrypto.so.10
2)执行初始化过程中提示ssh登录和输入密码,也就是说即使单节点,也需要配置gpadmin的信任关系,按要求进行配置后,可以正常执行。
3)
20200322:16:13:12:036815gpinitsystem:sirius:gpadmin-[FATAL]:-Failed to complete obtain psql countMaster gp_segment_configuration ScriptExiting!
上述错误出现后,从centos7中复制下述文件和创建对应的软链接:
libnsl.so.1libreadline.so.6libtinfo.so.5
复制文件后,再次进行初始化,成功执行,出现以下表示初始化成功:

上述命令成功后,还需要进行数据库时区和用户环境变量的设置:
gpconfig -s TimeZonegpconfig -c TimeZone -v 'Asia/Shanghai'#设置后需要重启数据库:gpstop -ra#gpadmin用户的环境变量设置vi .bash_profilesource /usr/local/greenplum-db/greenplum_path.shexport MASTER_DATA_DIRECTORY=/dbvol/greenplum/master/gpsne-1export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64export PGPORT=5432export PGUSER=gpadminexport LD_PRELOAD=/lib64/libz.so.1 ps
Greenplum的安装手册相对来说比较完整,按照说明进行,基本可以成功安装。本次安装过程中遇到主要问题是对Centos8.1版本的支持问题,需要从Centos7.7版本上获取相应的文件,才最终解决掉。
No.17。




