Centos7.4下安装GreenPlum5.9数据库——笔记

最近因公司需要,去学习这个数据库并安装部署,故想写下记录一下。
如有大佬闲逛看到时,还请留步指导一番,在此先行感谢!

greenplum官网下载地址:
https://network.pivotal.io/products/pivotal-gpdb

greenplum中文手册网址:
https://gp-docs-cn.github.io/docs/common/gpdb-features.html

系统环境:

CentOS Linux release 7.4.1708 (Core)

本人这里运用的是两台机子
一台greenplum master——gpmaster
一台greenplum segment01——gpsegment
在全部机子上操作如下:

[root@gpmaster ~]# systemctl stop firewalld
[root@gpmaster ~]# systemctl disable firewalld
[root@gpmaster ~]# sed -i ‘/SELINUX/s/enforcing/disabled/’ /etc/selinux/config
[root@gpmaster ~]# reboot
[root@gpmaster ~]# grep “^SELINUX” /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

master机子上修改/etc/hosts文件,为了之后GreenPlum能够正常通信,如下添加:

[root@gpmaster ~]# ifconfig | awk ‘NR==2{print $2}’
192.168.0.180
echo 192.168.0.180 gpmaster gpmaster >> /etc/hosts

[root@gpsement ~]# ifconfig | awk ‘NR==2{print $2}’
192.168.0.181
[root@gpmaster ~]# echo 192.168.0.181 gpsegment gpsegment >> /etc/hosts
[root@gpmaster ~]# scp /etc/hosts/ gpsegment:/etc/
[root@gpmaster ~]# ping gpmaster
[root@gpmaster ~]# ping gpsegment

所有的机子上添加gpadmin用户,并作为系统用户(如想安全可另做修改):

[root@gpmaster ~]# groupadd -g 530 gpadmin
[root@gpmaster ~]# useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
[root@gpmaster ~]# id gpadmin
uid=530(gpadmin) gid=530(gpadmin) 组=530(gpadmin)
echo “123456” | passwd --stdin gpadmin

所有的机子上操作:
修改/etc/security/limits.conf文件并打开限制
以及 /etc/sysctl.conf修改系统内核参数:

[root@gpmaster ~]# echo '* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072' >> /etc/security/limits.conf
[root@gpmaster ~]# tail -4 /etc/security/limits.conf 
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

[root@gpsement ~]# echo 'kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
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.ip_forward = 0
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.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2' >> /etc/sysctl.conf

重新读取/etc/sysctl.conf的配置文件

[root@gpsement ~]# sysctl -p

修改读块大小

[root@gpmaster ~]# /usr/sbin/blockdev --setra 16384 /dev/sda
[root@gpmaster ~]# /usr/sbin/blockdev --getra /dev/sda
16384

修改io scheduler为deadline

[root@gpsement ~]# echo deadline > /sys/block/sda/queue/scheduler
[root@gpsement ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

安装依赖包:

yum -y install ed openssh-clients gcc gcc-c++ make automake autoconf libtool perl rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel unzip #greenplum依赖ed包,扩容节点需要rsync包。

其他节点:

[root@gpmaster ~]# vim /etc/ntp.conf
server 127.0.0.1
[root@gpsement ~]# vim /etc/ntp.conf
server gpmaster
systemctl restart ntpd
systemctl enable ntpd

master用root用户操作:
解压安装:

unzip greenplum-db-5.9.0-rhel7-x86_64.zip
chmod +x greenplum-db-5.9.0-rhel7-x86_64.bin
./greenplum-db-5.9.0-rhel7-x86_64.bin
一路空格
yes
回车
yes
yes
[root@gpmaster ~]# ls -l /usr/local/
总用量 0
drwxr-xr-x. 2 root root 6 11月 5 2016 bin
drwxr-xr-x. 2 root root 6 11月 5 2016 etc
drwxr-xr-x. 2 root root 6 11月 5 2016 games
lrwxrwxrwx 1 root root 20 4月 11 16:19 greenplum-db -> ./greenplum-db-5.9.0
drwxr-xr-x 11 root root 138 4月 11 16:19 greenplum-db-5.9.0
drwxr-xr-x. 2 root root 6 11月 5 2016 include
drwxr-xr-x. 2 root root 6 11月 5 2016 lib
drwxr-xr-x. 2 root root 6 11月 5 2016 lib64
drwxr-xr-x. 2 root root 6 11月 5 2016 libexec
drwxr-xr-x. 2 root root 6 11月 5 2016 sbin
drwxr-xr-x. 5 root root 49 4月 11 2019 share
drwxr-xr-x. 2 root root 6 11月 5 2016 src

给目录更改所属组跟所有者:

[root@gpmaster ~]# chown -R gpadmin.gpadmin /usr/local/greenplum-db
[root@gpmaster ~]# chown -R gpadmin.gpadmin /usr/local/greenplum-db-5.9.0/
[root@gpmaster ~]# ls -l /usr/local/
总用量 0
drwxr-xr-x. 2 root root 6 11月 5 2016 bin
drwxr-xr-x. 2 root root 6 11月 5 2016 etc
drwxr-xr-x. 2 root root 6 11月 5 2016 games
lrwxrwxrwx 1 gpadmin gpadmin 20 4月 11 16:19 greenplum-db -> ./greenplum-db-5.9.0
drwxr-xr-x 11 gpadmin gpadmin 138 4月 11 16:19 greenplum-db-5.9.0
drwxr-xr-x. 2 root root 6 11月 5 2016 include
drwxr-xr-x. 2 root root 6 11月 5 2016 lib
drwxr-xr-x. 2 root root 6 11月 5 2016 lib64
drwxr-xr-x. 2 root root 6 11月 5 2016 libexec
drwxr-xr-x. 2 root root 6 11月 5 2016 sbin
drwxr-xr-x. 5 root root 49 4月 11 2019 share
drwxr-xr-x. 2 root root 6 11月 5 2016 src

创建两个文件:
all_host跟all_segment
这两个文件名字没要求,放哪里也没要求,只要你记得
主要是把机子名写正确,要跟/etc/hosts文件里的一致

[root@gpmaster ~]# echo ‘gpmaster
gpsegment’ > /home/gpadmin/host_all
[root@gpmaster ~]# echo ‘gpmaster
gpsegment’ > /home/gpadmin/segments_all #因为我打算在master上也要添加节点,所以两个我都一起写上去,初始化的时候可见。

master gpadmin 用户操作:

su – gpadmin
source /usr/local/greenplum-db/greenplum_path.sh

添加下面两行代码到用户的/.bash_profile和/.bashrc

[root@node1 ~]# tail -4 /home/gpadmin/.bashrc
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data1/gpdata/master/gpseg-1
export PGPORT=5432
export PGDATABASE=test
[gpadmin@gpmaster ~]$ source /home/gpadmin/.bash_profile
[gpadmin@gpmaster ~]$ source /home/gpadmin/.bashrc

master root上操作:

[root@gpmaster ~]# source /usr/local/greenplum-db/greenplum_path.sh

打通所有节点,交换key建立服务器间的信任:

[root@gpmaster ~]# gpssh-exkeys -f /home/gpadmin/host_all
如果发现无法copy到其他节点的报错只需删除root下的/.ssh/里面的东西即可
rm -rf ~/.ssh/*

为其他主机安装greenplum(在master操作就可以了)

[root@gpmaster ~]# gpseginstall -f /home/gpadmin/host_all -u gpadmin -p 123456
[root@gpmaster ~]# gpssh -f /home/gpadmin/host_all -e ls -l $GPHOME

创建配置文件相对应的目录(存储目录),可以参照下面的gpinitsystem_config进行自定义创建。该操作在master上即可:

[root@gpmaster ~]# gpssh -f /home/gpadmin/host_all -e ‘mkdir -p /data1/gpdata/primary’
[root@gpmaster ~]# gpssh -f /home/gpadmin/host_all -e ‘mkdir -p /data1/gpdata/mirror’
[root@gpmaster ~]# gpssh -f /home/gpadmin/host_all -e ‘mkdir -p /data1/gpdata/master’
[root@gpmaster ~]# gpssh -f /home/gpadmin/host_all -e ‘chown -R gpadmin.gpadmin /data1’
[root@gpmaster ~]# gpssh -f /home/gpadmin/host_all -e ‘ls -l /data1’

拷贝gpinitsystem_config文件并对其进行授权跟修改(在master上操作):

[root@gpmaster ~]# cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /usr/local/greenplum-db/
[root@gpmaster ~]# chmod 775 /usr/local/greenplum-db/gpinitsystem_config

修改gpinitsystem_config配置信息如下(参考):

[root@gpmaster ~]# egrep -v '^#|^$' /usr/local/greenplum-db/gpinitsystem_config
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data1/gpdata/primary)  #路径需要注意是否正确
MASTER_HOSTNAME=gpmaster  #这里改成/etc/hosts/里面master的名字
MASTER_DIRECTORY=/data1/gpdata/master #路径需要注意是否正确
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=50000  #这里默认是注释的,去掉注释
REPLICATION_PORT_BASE=41000   #这里默认是注释的,去掉注释
MIRROR_REPLICATION_PORT_BASE=51000   #这里默认是注释的,去掉注释
declare -a MIRROR_DATA_DIRECTORY=(/data1/gpdata/mirror)  #路径需要注意是否正确
DATABASE_NAME=data #创建的第一个库,可用来做登录
MACHINE_LIST_FILE=/home/gpadmin/host_all

master gpadmin上操作初始化数据库:
到这一步,最好就检查一下上面步骤都做了嘛:

gpinitsystem -c /usr/local/greenplum-db/gpinitsystem_config -s gpsegment

如果初始化一半失败的话注意看报错信息,看是否有如下提示:

Run command /bin/bash /home/gpadmin/gpAdminLogs/backout_gpinitsystem_gpadmin_20190411_173138 to remove these changes
如果有就按照路径去找到这个文件执行,然后修改好错误重新初始化

之后就没问题了

验证,登入数据库(一定要用gpadmin用户):

psql -d test #登陆数据库
data=# select * from gp_segment_configuration order by 1; #查看节点信息
\q #退出数据库

猜你喜欢

转载自blog.csdn.net/weixin_44466805/article/details/88973352