本文章转载自:https://blog.csdn.net/zutsoft/article/details/103646014
Greenplum是一套基于postgresql数据库的典型MPP(大规模并行处理系统)集群数据库,整个GP环境中包含几个部分:
-
Master:建立与客户端的连接和管理,生产SQL查询计划,执行计划向segment的分发收集执行结果。Master本身不负责数据存储,只存储数据字典。
-
Segment:业务数据的存取,用户SQL的执行。
-
Master高可用,使用节点standby的方式。
-
Segment高可用,使用磁盘镜像的方式。
一、 准备工作
- 软件:以下软件为确认可用的版本
1)对于数据库版本和操作系统版本已经验证的有两个组合
-
a) 操作系统:Red Hat Enterprise Linux Server 6.2 64bit.
数据库:greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.zip
-
b) 操作系统:CentOS-6.8-x86_64-bin-DVD1.
数据库:greenplum-db-5.2.0-rhel6-x86_64.zip.zip
2)辅助工具:Xshell,winscp等。
准备三台虚拟机 node-01,node-02,node-03
- 操作系统环境:
部署greenplum时,需要对各个节点的操作系统参数进行配置,主要包括三个部分:共享内存、网络参数以及用户资源控制
由于是集群数据库,所以要准备多台服务器,并且每台服务器均按如下方法进行配置:
i. vi /etc/hosts
192.168.0.132 hdp-0
192.168.0.133 hdp-1
192.168.0.134 hdp-2
192.168.0.135 hdp-3
ii. root修改内核
修改vi /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.arp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debuggingfunctionality of the kernel
kernel.sysrq = 1
# Controls whether core dumps will appendthe PID to the core filename.
# Useful for debugging multi-threadedapplications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the default maxmimum size of amesage queue
kernel.msgmnb = 65536
# Controls the maximum size of a message,in bytes
kernel.msgmax = 65536
kernel.msgmni = 2048
kernel.sem = 250 512000 100 2048
# Controls the maximum shared segment size,in bytes
#kernel.shmmax = 68719476736
kernel.shmmax = 500000000 --共享内存段最大值
kernel.shmmni = 4096 --共享内存段最大值
# Controls the maximum number of sharedmemory segments, in pages
#kernel.shmall = 4294967296
kernel.shmall = 4000000000 --共享内存段最大值
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
iii. root修改Linux最大连接数
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131071
逐个修改 vi /etc/security/limits.d/20-nproc.conf
* soft nproc 131072
iiii. 创建gpadmin用户用户运行greenolum。不能以root身份运行creenplum数据库系统
这步在所有节点上完成:
useradd gpadmin --创建gpadmin账户
passwd gpadmin --给账户gpadmin设置密码
自己设置的 123456
更多优化配置见:https://blog.csdn.net/zutsoft/article/details/103645796
二、安装Greenplum数据库
1.安装Master节点
注:GP6.X RPM版本安装前需要检查软件依赖,安装过程需要联网,若为内网机,需要先下载好相应的包。
批量安装依赖包(需联网)
greenplum 5 是用rpm命令的,而greenplum 6 则用 yum install 直接安装依赖。
sudo 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
将数据库安装文件上传到/app目录下,解压并执行安装,这里不用对路径等信息做修改,一路默认即可,数据库名称可以适当进行调整。安装完成后,系统会自动在/usr/local目录下创建一个名为greenplum-db对安装目录的连接
rpm -ivh greenplum-db-6.2.1-rhel7-x86_64.rpm
安装好之后,把greemplum安装目录权限赋给gpadmin用户:
chown -R gpadmin /usr/local/greenplum-db-6.2.1
chgrp -R gpadmin /usr/local/greenplum-db-6.2.1
2. 安装其他节点:
创建hostfile_exkeys
在$GPHOME目录的conf下创建两个host文件(all_host,seg_host),用于后续使用gpssh,gpscp 等脚本host参数文件
all_host : 内容是集群所有主机名或ip,包含master,segment,standby等。
seg_host: 内容是所有 segment主机名或ip
若一台机器有多网卡,且网卡没有绑定成bond0模式时,需要将多网卡的ip 或者host都列出来。
cat all_host
hdp-0
hdp-1
hdp-2
cat seg_host
hdp-1
hdp-2
打通gpadmin 用户免密登录即集群互信,免密登陆
gp6 之前,gpadmin 用户的 免密登录步骤由gpseginstall 工具自动处理,gp6 需要人工处理
步骤:
[root@mdw greenplum-db-6.2.1]# su - gpadmin
[