美文网首页
Greenplum安装

Greenplum安装

作者: 渣渣曦 | 来源:发表于2022-06-15 18:04 被阅读0次

    1 安装说明

    1.1 集群介绍

    使用CentOS 8安装1个Master,3个Segment,每台机器命名及IP地址如下:
    mdw 192.168.3.8
    sdw1 192.168.3.9
    sdw2 192.168.3.10
    sdw3 192.168.3.11

    1.2 Master与Segment说明

    Master:

    (1) 建立与客户羰的会话连接和管理。
    (2) SQL的解析并形成分布式的执行计划。
    (3) 将生成好的执行计划分发到每一个Segment节点执行。
    (4) 收集Segement执行结果。
    (5) Master不存储业务数据,只存储数据字典。
    (6) Master主机可一主一备,分布在两台机器上。
    (7) 为了提高性能,Master最好单独用一台机器。

    Segement:

    (1) 业务数据存取。
    (2) 执行Master分发SQL语句。
    (3) 相对于Master,每个Segment对等负责对应数据的存储和计算。
    (4) 每台机器上可以配置一个到多个Segment。
    (5) 由于每个Segment都是对等的,建议采用相同配置服务器。
    (6) Segment分为Primary和Mirror两种,一般交错存放在子节点上。

    2 安装环境准备

    2.1 关闭防火墙(4台)

    systemctl disable firewalld
    systemctl stop firewalld
    

    2.2 配置/etc/hosts(4台)

    各节点之前通过节点名进行相互通信,4台服务器名称设置如下:

    192.168.3.8 mdw
    192.168.3.9 sdw1
    192.168.3.10 sdw2
    192.168.3.11 sdw3
    

    2.3 修改内核配置参数(4台,测试可不设置)

    kernel.shmall = 4000000000
    kernel.shmmax = 500000000
    kernel.shmmni = 4096
    vm.overcommit_memory = 2 
    vm.overcommit_ratio = 95 
    net.ipv4.ip_local_port_range = 10000 65535 
    kernel.sem = 500 2048000 200 40960
    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 
    vm.dirty_ratio = 0
    vm.dirty_background_bytes = 1610612736
    vm.dirty_bytes = 4294967296
    

    执行命令以使上面配置生效

    sysctl -p
    

    2.4 配置资源限制参数(4台,测试可不设置)

    /etc/security/limits.conf

    * soft nofile 524288
    * hard nofile 524288
    * soft nproc 131072
    * hard nproc 131072
    

    2.5 创建用户和用户组(4台)

    groupdel gpadmin
    userdel gpadmin
    groupadd -g 530 gpadmin
    useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
    chown -R gpadmin:gpadmin /home/gpadmin/
    passwd gpadmin
    

    2.6 创建安装目录并赋权(4台)

    mkdir /usr/local/greenplum
    chown -R gpadmin:gpadmin /usr/local/greenplum/
    

    3 集群安装部署

    3.1 安装依赖(4台)

    对CentOS 8 换阿里源

    rm -rf /etc/yum.repos.d/*
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
    

    安装依赖

    yum install -y zip unzip openssh-clients ed chrony net-tools perl perl-devel perl-ExtUtils* mlocate lrzsz parted apr apr-util bzip2 krb5-devel libevent libyaml rsync
    

    安装python2

    yum install python2
    ln -s /usr/bin/python2 /usr/bin/python
    

    3.2 执行安装程序

    3.2.1 下载最新版的Greenplum
    https://github.com/greenplum-db/gpdb/releases
    

    上传mdw主机后执行以下命令:

    rpm -ivh open-source-greenplum-db-*-rhel8-x86_64.rpm
    

    greenplum会安装到/usr/local目录下,需要把目录权限赋于gpadmin用户

    chown -R gpadmin:gpadmin /usr/local/greenplum*
    
    3.2.2 集群互信,免密登陆(gpadmin用户执行)
    su - gpadmin
    ssh-keygen -t rsa
    
    ssh-copy-id mdw
    ssh-copy-id sdw1
    ssh-copy-id sdw2
    ssh-copy-id sdw3
    

    • 创建 hostlist,seg_hosts (Master)
    目录/home/gpadmin/conf,再分别创建hostlist,seg_hosts 。hostlist 中填写所有节点的主机别名,seg_hosts 中填写所有Segment 的主机别名。

    mkdir /home/gpadmin/conf
    cd /home/gpadmin
    

    vi /home/gpadmin/conf/hostlist

    mdw
    sdw1
    sdw2
    sdw3
    

    vi /home/gpadmin/conf/seg_hosts

    sdw1
    sdw2
    sdw3
    

    应用环境变量

    source /usr/local/greenplum-db-*/greenplum_path.sh
    

    • 使用gpssh-exkeys 工具,打通n-n的免密登陆

    gpssh-exkeys -f conf/hostlist
    
    3.2.2 分发数据库文件(root用户执行)
    cd /usr/local
    tar -cvf gp6.tar greenplum-db-*/
    chown -R gpadmin:gpadmin /usr/local/gp6.tar
    

    • 分发

    gpscp -f /home/gpadmin/conf/hostlist gp6.tar =:/usr/local/greenplum
    

    • 解压(gpadmin用户执行)

    在master上运行,一台上敲命令,操作4台。

    source /usr/local/greenplum-db-*/greenplum_path.sh
    gpssh -f /home/gpadmin/conf/hostlist
    => cd /usr/local/greenplum
    => tar -xvf gp6.tar
    => ln -s greenplum-db-* greenplum-db
    

    3.3 环境配置

    3.3.1 创建数据存储空间

    以上安装的是程序,接下来要创建数据存储空间 。

    • Master

    Master 不存储 user data,仅有 system catalog tables 和 system metadata ,这里没有 Standby Master。所以,只在 Master 创建一个目录即可。

    mkdir -p /home/gpadmin/data/master
    

    • Segment

    数据存储在Segment 中,并且需要 primary segments 和 mirror segments,其余3台segment 用 gpssh分别创建2个目录。

    source /usr/local/greenplum-db/greenplum_path.sh 
    gpssh -f /home/gpadmin/conf/seg_hosts -e 'mkdir -p /home/gpadmin/data/primary'
    gpssh -f /home/gpadmin/conf/seg_hosts -e 'mkdir -p /home/gpadmin/data/mirror'
    
    3.3.2 配置 .bash_profile 环境变量(4台,先在master中做完后推送)

    修改/usr/local/greenplum/greenplum-db/greenplum_path.sh
    在图中位置加入:

    GPHOME=/usr/local/greenplum/greenplum-db
    
    image.png

    vi /home/gpadmin/.bash_profile

    source /usr/local/greenplum/greenplum-db/greenplum_path.sh
    export MASTER_DATA_DIRECTORY=/home/gpadmin/data/master/gpseg-1
    export PGPORT=5432
    export PGUSER=gpadmin
    

    • 使之生效

    source /home/gpadmin/.bash_profile
    

    推送

    gpscp -f /home/gpadmin/conf/seg_hosts /usr/local/greenplum/greenplum-db/greenplum_path.sh gpadmin@=:/usr/local/greenplum/greenplum-db/greenplum_path.sh
    
    gpscp -f /home/gpadmin/conf/seg_hosts /home/gpadmin/.bash_profile gpadmin@=:/home/gpadmin/.bash_profile
    
    3.3.3 初始化配置文件

    • configuration file

    模板在:$GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config,拷贝过来。

    mkdir /home/gpadmin/gpconfigs
    cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
    

    vi /home/gpadmin/gpconfigs/gpinitsystem_config

    #数据库代号
    ARRAY_NAME="Greenplum"
    
    #segment前缀
    SEG_PREFIX=gpseg
    
    #primary segment 起始的端口号
    PORT_BASE=33000
    
    #指定primary segment的数据目录,网上写的是多个相同目录,多个目录表示一台机器有多个segment
    declare -a DATA_DIRECTORY=(/home/gpadmin/data/primary)
    
    #master所在机器的host name
    MASTER_HOSTNAME=mdw
    
    #master的数据目录
    MASTER_DIRECTORY=/home/gpadmin/data/master
    
    #master的端口
    MASTER_PORT=5432
    
    #指定bash的版本
    TRUSTED_SHELL=/usr/bin/ssh
    
    #将日志写入磁盘的间隔,每个段文件通常 =16MB < 2 * CHECK_POINT_SEGMENTS + 1
    CHECK_POINT_SEGMENTS=8
    
    #字符集
    ENCODING=UNICODE
    
    #mirror segment 起始的端口号
    MIRROR_PORT_BASE=44000
    
    # mirror的数据目录,和主数据一样,一个对一个,多个对多个
    declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data/mirror)
    

    • host file
    vi gpconfigs/hostfile_gpinitsystem

    sdw1
    sdw2
    sdw3
    
    3.3.4 初始化数据库

    安装

    cd ~
    gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem
    

    期间会提示,是否继续,输入y即可
    初始化失败处理

    rm -rf /home/gpadmin/data/master/gpseg-1
    gpssh -f /home/gpadmin/conf/seg_hosts
    => rm -rf /home/gpadmin/data/primary/*
    

    相关文章

      网友评论

          本文标题:Greenplum安装

          本文链接:https://www.haomeiwen.com/subject/ysqxvrtx.html