Greenplum6安装指南

公司业务要更换服务器,对gp一知半解的我找了很多文档,结合了很多资料才安装成功,网上很多资料都是gp4或者更早的版本,这里记录一下gp6安装的最全步骤。
参考的一些文档:https://copyfuture.com/blogs-details/20200316122110528l3xw1wnt2cchri4
https://blog.csdn.net/u013767472/article/details/101195614#%E4%B8%89%E3%80%81%E5%AE%89%E8%A3%85GreenPlum%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%8C%E5%B9%B6%E9%85%8D%E7%BD%AEgpadmin%E7%94%A8%E6%88%B7
https://blog.csdn.net/whq12789/article/details/103510726?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase
gp6.2.1企业版安装包:https://download.csdn.net/download/weixin_37138915/12609662

安装前集群分配

因需求用到7台服务器,1台master,1台standby,5台segment(这里采用2主2从 根据需求而定)

172.168.XX.1	Master
172.168.XX.2	Standby
172.168.XX.3	Segment
172.168.XX.4	Segment
172.168.XX.5	Segment
172.168.XX.6	Segment
172.168.XX.7	Segment

批量安装依赖包

这些是安装gp所需的依赖包,本地环境服务器都安装了的可跳过

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与防火墙(全部机器)

看很多安装文档之前都写着关闭防火墙与selinux,防火墙可以理解,但是SELinux是什么呢?SELinux策略是白名单原则,所以你需要非常清楚你的各项操作都需要哪些访问权限,之前本人用过阿里的云主机,提供的centos默认是关闭的,然后试过测试环境下分布式hadoop,在不关闭的情况下SSH连接各主机会有问题…具体是因为什么有待研究。

  • 检查SELinux 如果为enable就是开启状态
/usr/sbin/sestatus -v
  • 关闭SELinux
vi /etc/selinux/config 
SELINUX=disabled
  • 检查防火墙状态 若为Active:active(running)则开启
systemctl status firewalld.service
  • 停止防火墙(防火墙的是centos7命令)
systemctl stop firewalld.service
  • 永久关闭防火墙(开机不启动)
systemctl disable firewalld.service

配置/etc/hosts(全部机器)

验证配置成功可以在机器之间用ping测试看下能否连通

172.168.XX.1	mdw
172.168.XX.2	smdw
172.168.XX.3	sdw1
172.168.XX.4	sdw2
172.168.XX.5	sdw3
172.168.XX.6	sdw4
172.168.XX.7	sdw5

修改内核配置参数 (全部机器)

  • /etc/sysctl.conf

官网文档直接拉的:

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 

配置资源限制参数 (全部机器)

  • vi /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072

“*” 星号表示所有用户
nproc 是代表最大进程数
nofile 是代表最大文件打开数 重启后生效
ulimit -u 命令显示每个用户可用的最大进程数验证返回值为131072

同步时间

  • 查看是否是上海时区
 timedatectl status
  • 不是的话就修改 这里我的环境是没有问题的 这一步没有测试过
timedatectl set-timezone Asia/Shanghai

创建用户与用户组(全部机器)

  • 如果存在 先删除
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

创建安装目录与授权(全部机器)

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

上传安装包到服务器上并安装(Master)

这里我是用了xftp上传的,用的是企业版本的gp6.2.1,企业版本的180M左右,开源版的不到100M,据说开源版的用不了gpcc,具体也没用过;把rpm包拉到刚刚创建的路径下:/usr/local/greenplum

  • 如果是rpm包:
cd /usr/local/greenplum
yum install greenplum-db-6.1.2-rhel7-x86_64.rpm
  • 如果是zip包:
cd /usr/local/greenplum
unzip greenplum-db-6.1.2-rhel7-x86_64.zip
chmod +x greenplum-db-6.1.2-rhel7-x86_64.bin
./greenplum-db-6.1.2-rhel7-x86_64.bin

gp5版本是用rpm命令的,gp6直接yum install安装,通过yum方便不少,如果安装过程出问题直接yum remove卸载再重头再来。

  • 赋予权限
    安装后默认生成在/usr/local/greenplum-db-6.1.2/里,因为是用root用户安装,所以要赋权给gpadmin:
chown -R gpadmin:gpadmin /usr/local/greenplum*
  • 应用Greenplum环境变量
su gpadmin
source /usr/local/greenplum-db-6.1.2/greenplum_path.sh

source之后就可以用gp的命令了。

批量安装到segment对应的机器(其他六台)

  • SSH免密登陆(其他六台)
    首先创建公钥对,生成时不要输入密码,这里是用gpadmin用户,生成的位置在/home/gpadmin/.ssh/id_rsa,是私钥。另外,还会产生一个公钥 id_rsa.pub
ssh-keygen -t rsa
> /home/gpadmin/.ssh/id_rsa
> 回车
> 回车
  • 添加信任其他机器的Host key(其他六台)
ssh-copy-id smdw
ssh-copy-id mdw1
ssh-copy-id mdw2
ssh-copy-id mdw3
ssh-copy-id mdw4
ssh-copy-id mdw5

在集群的每一台使用 ssh-copy-id 命令,把 gpadmin 的 public key 拷到 known_hosts。这样,集群的机器互相访问就是通过这个设定互相信任的。

  • 创建hostlist seg_hosts (Master)
    hostlist放全部主机的名字,seg_hosts放segment主机别名:
mkdir /usr/local/conf
cd /usr/local/conf
touch hostlist
vi hostlist
>mdw 
>smdw 
>sdw1 
>sdw2 
>sdw3
>sdw4
>sdw5
touch seg_hosts
vi seg_hosts
>sdw1 
>sdw2 
>sdw3
>sdw4
>sdw5

  • 使用 gpssh-exkeys 打通所有服务器 (Master)

将所有机器的通道打开,这样在每台机器之间跳转,就不需要输入密码。

cd /home/gpadmin/conf
gpssh-exkeys -f hostlist
  • gpssh批量操作

在打通所有机器通道之后,我们就可以使用 gpssh 命令对所有机器进行批量操作了,可以用pwd测试一下,exit退出

gpssh -f hostlist
pwd
exit
  • 打包(批量操作)

权限问题,可以用root用户打包,再把权限赋给gpadmin

cd /usr/local
tar -cf gp6.tar greenplum-db-6.1.2/
chown -R gpadmin:gpadmin /usr/local/gp6.tar
  • 分发(批量操作)
gpscp -f /home/gpadmin/conf/hostlist gp6.tar =:/usr/local/greenplum
  • 解压(批量操作)
cd /usr/local/greenplum
tar -xf gp6.tar
ln -s greenplum-db-6.1.2 greenplum-db

觉得复杂的话可以xftp传到各机器上,保证在统一目录下。

创建数据存储空间(批量操作)

因为我这里是用了两主两从存储数据,继续上面的批量操作:

cd /home/gpadmin/
mkdir gpdata
cd gpdata
mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
ll
exit

环境配置(全部机器)

vi ~/.bash_profile 
source /usr/local/greenplum/greenplum-db-6.2.1/greenplum_path.sh
## 指定master存储地址适配
export MASTER_DATA_DIRECTORY=/data/gpdata/gpmaster/gpseg-1 
export PGPORT=5432
export PGDATABASE=testdb
## 使得变量生效
source ~/.bash_profile

顺便检查一下greenplum_path.sh里面GPHOME的位置有没有问题

初始化配置文件(Master)

  • 拷贝配置文件

有模版可以拷贝,先创建个文件夹,再把模版拷贝过来

 mkdir /home/gpadmin/gpconfigs
 cp /usr/local/greenplum-db-6.2.1/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
  • 编辑gpinitsystem_config
#数据库代号
ARRAY_NAME="Greenplum"
#segment前缀
SEG_PREFIX=gpseg
#primary segment 起始的端口号
PORT_BASE=40000
#指定primary segment的数据目录,网上写的是多个相同目录,多个目录表示一台机器有多个segment
declare -a DATA_DIRECTORY=(/home/gpadmin/data/gpdatap1 /home/gpadmin/data/gpdatap2)
#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=50000
# mirror的数据目录,和主数据一样,一个对一个,多个对多个
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data/datam1 /home/gpadmin/data/gpdatam2)

创建一个文件把数据节点的名字放入

cd /home/gpadmin/gpconfigs
touch hostfile_gpinitsystem
vi hostfile_gpinitsystem
>sdw1 
>sdw2 
>sdw3
>sdw4
>sdw5

初始化数据库(Master)

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

时间可能比较久,千万不要随便CtrlC退出,直到看到Greenplum Database instance successfully created,
初始化成功。

初始化Standby

gpinitstandby -s smdw

修改pg_hba.conf文件连接

vi /home/gpadmin/gpdata/gpmaster/gpseg-1/pg_hba.conf 
** 添加
host all all 0.0.0.0/0 md5

测试验证

  • 使用psql登陆数据库
psql -d postgres
  • \q退出数据库
  • \l显示数据库列表

查看集群状态

gpstate

自此,greenplum-6.2.1安装大功告成~

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值