暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GPDB(二)安装

南山笔记 2021-05-13
1133

本次安装主要基于单机GreenPlum进行,操作系统为CentOS 8.1版本。安装过程主要分为操作系统包准备、系统配置、软件安装、存储空间分配和数据库初始化等步骤。


操作系统包准备工作:

首先从https://github.com/greenplum-db/gpdb下载以下文件:

    README.CentOS.bash
    python-dependencies.txt
    python-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_config
                      Max Startups 10:30:200
                      MaxSessions 200
                      PermitRootLogin yes
                      PubkeyAuthentication yes

                       重启服务:


                        service sshd restart


                        参数调整:

                        包括系统参数和用户参数两部分,如下:

                        1、调整系统参数

                          vi etc/sysctl.conf
                          kernel.shmall = 197951838
                          kernel.shmmax = 810810728448
                          kernel.shmmni = 4096
                          vm.overcommit_memory= 2   # SeeSegment Host Memory
                          vm.overcommit_ratio = 50  # See Segment Host Memory,缺省50,建议95
                          net.ipv4.ip_local_port_range= 10000 65535    # See PortSettings
                          kernel.sem = 500 2048000 200 40960   #比oracle的设置高一大截
                          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 = 1
                          vm.zone_reclaim_mode= 0
                          vm.dirty_expire_centisecs= 500
                          vm.dirty_writeback_centisecs= 100

                          内存参数需要根据主机内存大小差异进行不同设置:

                          # See System Memory

                          # 64G以上

                            vm.dirty_background_ratio= 0           
                            vm.dirty_ratio = 0
                            vm.dirty_background_bytes= 1610612736
                            vm.dirty_bytes =4294967296

                             # 64G以下


                              vm.dirty_background_ratio= 3
                              vm.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/master
                                    source usr/local/greenplum-db/greenplum_path.sh
                                    mkdir dbvol/greenplum/data
                                    chown -R gpadmin:gpadmin /dbvol/greenplum


                                    数据库初始化:

                                    这个环节是安装过程中遇到问题最多的环节,先讲需要做的工作,再描述下遇到的具体问题。

                                    1、检查/etc/hosts文件,确认已配置。

                                    2、创建gpdb的配置文件:


                                      mkdir /dbvol/greenplum/gpconfigs
                                      cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config ./

                                      编辑上述参数配置文件,主要是以下内容:


                                        ARRAY_NAME="Greenplum DataPlatform"
                                        SEG_PREFIX=gpseg
                                        PORT_BASE=6000
                                        #空格间隔,创建2个segment实例
                                        declare -a DATA_DIRECTORY=(/dbvol/greenplum/data /dbvol/greenplum/data)
                                        MASTER_HOSTNAME=sirius
                                        MASTER_DIRECTORY=/dbvol/greenplum/master
                                        MASTER_PORT=5432
                                        TRUSTED SHELL=ssh
                                        CHECK_POINT_SEGMENTS=8
                                        ENCODING=UNICODE

                                        编辑主机列表文件,配置主机名:


                                          vi hostfile_gpinitsystem
                                          sirius

                                           3、运行初始化工具:


                                          切换到gpadmin用户,运行以下:

                                            source /usr/local/greenplum-db/greenplum_path.sh
                                            export 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.10
                                                libcrypto.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.1
                                                  libreadline.so.6
                                                  libtinfo.so.5

                                                  复制文件后,再次进行初始化,成功执行,出现以下表示初始化成功:

                                                  上述命令成功后,还需要进行数据库时区和用户环境变量的设置:

                                                    gpconfig -s TimeZone
                                                    gpconfig -c TimeZone -v 'Asia/Shanghai'
                                                    #设置后需要重启数据库:
                                                    gpstop -ra
                                                    #gpadmin用户的环境变量设置
                                                    vi .bash_profile
                                                    source /usr/local/greenplum-db/greenplum_path.sh
                                                    export MASTER_DATA_DIRECTORY=/dbvol/greenplum/master/gpsne-1
                                                    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
                                                    export PGPORT=5432
                                                    export PGUSER=gpadmin
                                                    export LD_PRELOAD=/lib64/libz.so.1 ps

                                                    Greenplum的安装手册相对来说比较完整,按照说明进行,基本可以成功安装。本次安装过程中遇到主要问题是对Centos8.1版本的支持问题,需要从Centos7.7版本上获取相应的文件,才最终解决掉。


                                                    No.17。

                                                    文章转载自南山笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                    评论