Centos7.6安装greenplum6
安装准备(所有节点)
VMware安装Centos7.6
百度云:CentOS-7-x86_64-DVD-1810.iso 提取码:yb5t
机器名 | 主机名 | 内存 | 处理器内核总数 | 操作系统 | ip |
---|---|---|---|---|---|
master | mdw | 1G | 1 | Centos7.6 | 192.168.60.132 |
standby | smdw | 1G | 1 | Centos7.6 | 192.168.60.134 |
segment1 | sdw1 | 1G | 1 | Centos7.6 | 192.168.60.131 |
segment2 | sdw2 | 1G | 1 | Centos7.6 | 192.168.60.133 |
安装依赖
[root@mdw ~]# yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh openssl openssl-libs perl readline rsync R sed tar zip krb5-devel
[root@smdw ~]# yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh openssl openssl-libs perl readline rsync R sed tar zip krb5-devel
[root@sdw1 ~]# yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh openssl openssl-libs perl readline rsync R sed tar zip krb5-devel
[root@sdw2 ~]# yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh openssl openssl-libs perl readline rsync R sed tar zip krb5-devel
关闭selinux
[root@mdw ~]# vi /etc/selinux/config
#增加
SELINUX=disabled
[root@smdw ~]# vi /etc/selinux/config
#增加
SELINUX=disabled
[root@sdw1 ~]# vi /etc/selinux/config
#增加
SELINUX=disabled
[root@sdw2 ~]# vi /etc/selinux/config
#增加
SELINUX=disabled
关闭防火墙
[root@mdw ~]# systemctl stop firewalld.service
[root@mdw ~]# systemctl disable firewalld.service
[root@smdw ~]# systemctl stop firewalld.service
[root@smdw ~]# systemctl disable firewalld.service
[root@sdw1 ~]# systemctl stop firewalld.service
[root@sdw1 ~]# systemctl disable firewalld.service
[root@sdw2 ~]# systemctl stop firewalld.service
[root@sdw2 ~]# systemctl disable firewalld.service
配置/etc/hosts
[root@mdw ~]# vi /etc/hosts
#增加
192.168.60.132 mdw
192.168.60.134 smdw
192.168.60.131 sdw1
192.168.60.133 sdw2
[root@smdw ~]# vi /etc/hosts
#增加
192.168.60.132 mdw
192.168.60.134 smdw
192.168.60.131 sdw1
192.168.60.133 sdw2
[root@sdw1 ~]# vi /etc/hosts
#增加
192.168.60.132 mdw
192.168.60.134 smdw
192.168.60.131 sdw1
192.168.60.133 sdw2
[root@sdw2 ~]# vi /etc/hosts
#增加
192.168.60.132 mdw
192.168.60.134 smdw
192.168.60.131 sdw1
192.168.60.133 sdw2
修改内核参数
内核参数的设置请参考相关文档;
[root@mdw ~]# vi /etc/sysctl.conf
kernel.shmall = 4294967296
kernel.shmmax = 4294967296
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
net.ipv4.ip_local_port_range = 10000 65535
kernel.sem = 250 512000 100 2048
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_tw_recycle = 1
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
#使配置生效
[root@mdw ~]# sysctl -p
[root@smdw ~]# vi /etc/sysctl.conf
kernel.shmall = 4294967296
kernel.shmmax = 4294967296
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
net.ipv4.ip_local_port_range = 10000 65535
kernel.sem = 250 512000 100 2048
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_tw_recycle = 1
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
#使配置生效
[root@smdw ~]# sysctl -p
[root@sdw1 ~]# vi /etc/sysctl.conf
kernel.shmall = 4294967296
kernel.shmmax = 4294967296
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
net.ipv4.ip_local_port_range = 10000 65535
kernel.sem = 250 512000 100 2048
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_tw_recycle = 1
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
#使配置生效
[root@sdw1 ~]# sysctl -p
[root@sdw2 ~]# vi /etc/sysctl.conf
kernel.shmall = 4294967296
kernel.shmmax = 4294967296
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
net.ipv4.ip_local_port_range = 10000 65535
kernel.sem = 250 512000 100 2048
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_tw_recycle = 1
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
#使配置生效
[root@sdw2 ~]# sysctl -p
配置资源限制参数
[root@mdw ~]# vi /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
[root@smdw ~]# vi /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
[root@sdw1 ~]# vi /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
[root@sdw2 ~]# vi /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
创建用户gpadmin
#创建用户组
[root@mdw ~]# groupadd gpadmin
#添加用户gpadmin
#-r : 建立系统账号
#-m : 自动建立用户的登入目录
#-g : 指定用户所属的群组
[root@mdw ~]# useradd gpadmin -r -m -g gpadmin
#设置gpadmin的密码
[root@mdw ~]# passwd gpadmin
#创建用户组
[root@smdw ~]# groupadd gpadmin
#添加用户gpadmin
#-r : 建立系统账号
#-m : 自动建立用户的登入目录
#-g : 指定用户所属的群组
[root@smdw ~]# useradd gpadmin -r -m -g gpadmin
#设置gpadmin的密码
[root@smdw ~]# passwd gpadmin
#创建用户组
[root@sdw1 ~]# groupadd gpadmin
#添加用户gpadmin
#-r : 建立系统账号
#-m : 自动建立用户的登入目录
#-g : 指定用户所属的群组
[root@sdw1 ~]# useradd gpadmin -r -m -g gpadmin
#设置gpadmin的密码
[root@sdw1 ~]# passwd gpadmin
#创建用户组
[root@sdw2 ~]# groupadd gpadmin
#添加用户gpadmin
#-r : 建立系统账号
#-m : 自动建立用户的登入目录
#-g : 指定用户所属的群组
[root@sdw2 ~]# useradd gpadmin -r -m -g gpadmin
#设置gpadmin的密码
[root@sdw2 ~]# passwd gpadmin
安装greenplum6(所有节点)
上传安装包到gpadmin家目录
百度云: greenplum-db-6.10.0-rhel7-x86_64.rpm 提取码:tidq
#安装上传下载工具 lrzsz
[root@mdw ~]# yum -y install lrzsz
#切换gpadmin用户
[root@mdw ~]# su - gpadmin
#上传
[gpadmin@mdw ~]$ rz
#安装上传下载工具 lrzsz
[root@smdw ~]# yum -y install lrzsz
#切换gpadmin用户
[root@smdw ~]# su - gpadmin
#上传
[gpadmin@smdw ~]$ rz
#安装上传下载工具 lrzsz
[root@sdw1 ~]# yum -y install lrzsz
#切换gpadmin用户
[root@sdw1 ~]# su - gpadmin
#上传
[gpadmin@sdw1 ~]$ rz
#安装上传下载工具 lrzsz
[root@sdw2 ~]# yum -y install lrzsz
#切换gpadmin用户
[root@sdw2 ~]# su - gpadmin
#上传
[gpadmin@sdw2 ~]$ rz
rpm安装
#切回root用户
[gpadmin@mdw ~]$ exit
#安装
[root@mdw ~]# rpm -ivh /home/gpadmin/greenplum-db-6.10.0-rhel7-x86_64.rpm
#切回root用户
[gpadmin@smdw ~]$ exit
#安装
[root@smdw ~]# rpm -ivh /home/gpadmin/greenplum-db-6.10.0-rhel7-x86_64.rpm
#切回root用户
[gpadmin@sdw1 ~]$ exit
#安装
[root@sdw1 ~]# rpm -ivh /home/gpadmin/greenplum-db-6.10.0-rhel7-x86_64.rpm
#切回root用户
[gpadmin@sdw2 ~]$ exit
#安装
[root@sdw2 ~]# rpm -ivh /home/gpadmin/greenplum-db-6.10.0-rhel7-x86_64.rpm
目录授权
[root@mdw ~]# chown -R gpadmin:gpadmin /usr/local/greenplum*
[root@mdw ~]# chgrp -R gpadmin /usr/local/greenplum*
[root@smdw ~]# chown -R gpadmin:gpadmin /usr/local/greenplum*
[root@smdw ~]# chgrp -R gpadmin /usr/local/greenplum*
[root@sdw1 ~]# chown -R gpadmin:gpadmin /usr/local/greenplum*
[root@sdw1 ~]# chgrp -R gpadmin /usr/local/greenplum*
[root@sdw2 ~]# chown -R gpadmin:gpadmin /usr/local/greenplum*
[root@sdw2 ~]# chgrp -R gpadmin /usr/local/greenplum*
打通master节点与其他节点的通道(master节点)
应用greenplum环境变量
注:这里只是一次性应用,每次退出登录后失效;
[root@mdw ~]# su - gpadmin
[gpadmin@mdw ~]$ source /usr/local/greenplum-db-6.10.0/greenplum_path.sh
配置SSH免密登陆
#直接回车到最后
[gpadmin@mdw ~]$ ssh-keygen -t rsa
添加信任其他机器的Host key
#期间输入yes和对应的密码
[gpadmin@mdw ~]$ ssh-copy-id smdw
[gpadmin@mdw ~]$ ssh-copy-id sdw1
[gpadmin@mdw ~]$ ssh-copy-id sdw2
#查看Host key列表
[gpadmin@mdw ~]$ cat /home/gpadmin/.ssh/known_hosts
节点分发
[gpadmin@mdw ~]$ vi /home/gpadmin/hostfile_exkeys
mdw
smdw
sdw1
sdw2
[gpadmin@mdw ~]$ gpssh-exkeys -f /home/gpadmin/hostfile_exkeys
#测试
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/hostfile_exkeys -e 'ls -l /usr/local/greenplum-db-6.10.0'
Segment设置
[gpadmin@mdw ~]$ vi /home/gpadmin/hostfile_gpssh_segonly
sdw1
sdw2
可以批量操作了
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/hostfile_exkeys
=> quit
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/hostfile_gpssh_segonly
=> quit
创建数据目录
授权/data (所有节点)
[gpadmin@mdw ~]$ su - root
[root@mdw ~]# mkdir /data
[root@mdw ~]# chmod -R 777 /data
[gpadmin@smdw ~]$ su - root
[root@smdw ~]# mkdir /data
[root@smdw ~]# chmod -R 777 /data
[gpadmin@sdw1 ~]$ su - root
[root@sdw1 ~]# mkdir /data
[root@sdw1 ~]# chmod -R 777 /data
[gpadmin@sdw2 ~]$ su - root
[root@sdw2 ~]# mkdir /data
[root@sdw2 ~]# chmod -R 777 /data
批量创建数据目录(master节点)
[root@mdw ~]# su - gpadmin
[gpadmin@mdw ~]$ source /usr/local/greenplum-db-6.10.0/greenplum_path.sh
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/hostfile_exkeys
=> mkdir /data/gpdata
=> cd /data/gpdata
=> mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
=> quit
配置gpadmin的环境变量(所有节点)
[gpadmin@mdw ~]$ vi ~/.bash_profile
source /usr/local/greenplum-db-6.10.0/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpdata/gpmaster/gpseg-1
export PGPORT=5432
export PGDATABASE=etl
[gpadmin@mdw ~]$ source ~/.bash_profile
[gpadmin@smdw ~]$ vi ~/.bash_profile
source /usr/local/greenplum-db-6.10.0/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpdata/gpmaster/gpseg-1
export PGPORT=5432
export PGDATABASE=etl
[gpadmin@smdw ~]$ source ~/.bash_profile
[gpadmin@sdw1 ~]$ vi ~/.bash_profile
source /usr/local/greenplum-db-6.10.0/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpdata/gpmaster/gpseg-1
export PGPORT=5432
export PGDATABASE=etl
[gpadmin@sdw1 ~]$ source ~/.bash_profile
[gpadmin@sdw2 ~]$ vi ~/.bash_profile
source /usr/local/greenplum-db-6.10.0/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpdata/gpmaster/gpseg-1
export PGPORT=5432
export PGDATABASE=etl
[gpadmin@sdw2 ~]$ source ~/.bash_profile
初始化数据库(master节点)
拷贝模板
[gpadmin@mdw ~]$ mkdir ~/gpconfigs
[gpadmin@mdw ~]$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config ~/gpconfigs/gpinitsystem_config
修改模板
[gpadmin@mdw ~]$ vi /home/gpadmin/gpconfigs/gpinitsystem_config
# 数据库代号
ARRAY_NAME="Greenplum"
# segment前缀
SEG_PREFIX=gpseg
# primary segment 起始的端口号
PORT_BASE=40000
# 指定primary segment的数据目录,网上写的是多个相同目录,多个目录表示一台机器有多个segment
declare -a DATA_DIRECTORY=(/data/gpdata/gpdatap1 /data/gpdata/gpdatap2)
# master所在机器的host name
MASTER_HOSTNAME=mdw
# master的数据目录
MASTER_DIRECTORY=/data/gpdata/gpmaster
# master的端口
MASTER_PORT=5432
# 指定bash的版本
TRUSTED_SHELL=ssh
# 将日志写入磁盘的间隔,每个段文件通常 =16MB < 2 * CHECK_POINT_SEGMENTS + 1
CHECK_POINT_SEGMENTS=8
# 字符集
ENCODING=UNICODE
# mirror segment 起始的端口号
MIRROR_PORT_BASE=50000
# mirror的数据目录,和主数据一样,一个对一个,多个对多个
declare -a MIRROR_DATA_DIRECTORY=(/data/gpdata/gpdatam1 /data/gpdata/gpdatam2)
百度云:gpinitsystem_config 提取码:9kwu
创建一个文件把数据节点的名字放入
[gpadmin@mdw ~]$ vi ~/gpconfigs/hostfile_gpinitsystem
sdw1
sdw2
数据库初始化
#期间按提示输入y
[gpadmin@mdw ~]$ gpinitsystem -c ~/gpconfigs/gpinitsystem_config -h ~/gpconfigs/hostfile_gpinitsystem
初始化standby
#期间根据提示输入y
[gpadmin@mdw ~]$ gpinitstandby -s smdw
修改pg_hba.conf文件连接
[gpadmin@mdw ~]$ vi /data/gpdata/gpmaster/gpseg-1/pg_hba.conf
#根据实际情况配置
#增加如下一条记录,允许用户密码模式和可以登陆的IP地址范围
host all all 0.0.0.0/0 md5
创建ETL数据库(master节点)
#登录postgres库,默认的库
[gpadmin@mdw ~]$ psql -d postgres
postgres=# CREATE DATABASE etl;
postgres=# DROP DATABASE etl;
postgres=# \q
或者
#创建数据库etl
[gpadmin@mdw ~]$ createdb etl
#删除数据库etl
[gpadmin@mdw ~]$ dropdb etl
配置gpadmin环境变量的时候已经配置了etl为默认数据库,登录数据库直接输入psql命令;
[gpadmin@mdw ~]$ psql
etl=# create role admin createrole createdb;
etl=# create role tool with login;
etl=# grant admin to tool;
etl=# alter role tool with password 'tool';
pgadmin登录
百度云:pgadmin4-4.30-x64 提取码:821z
创建服务器
注:如无法连上,请先重启数据库,刚刚的 pg_hba.conf 才会生效;
[gpadmin@mdw ~]$ gpstop
[gpadmin@mdw ~]$ gpstart
进入查询工具
查看当前版本
SELECT version();