前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GreenPlum4+版本安装部署

GreenPlum4+版本安装部署

原创
作者头像
永远的SSS
修改2020-07-06 10:38:10
6800
修改2020-07-06 10:38:10
举报
文章被收录于专栏:GreenPlum数据库GreenPlum数据库

一.Greenplum集群服务器准备

1、说明

这里使用1个master,2个segment的集群,ip为

196.168.0.10

196.168.0.11

196.168.0.10

系统:Centos7+

其中196.168.0.10为master,其余为segment。

各服务器地址配置:

先查看目前用的网卡名字

网卡信息查看
网卡信息查看

编辑网卡信息 vi /etc/sysconfig/network-scripts/ifcfg-eno1677984

编辑网卡
编辑网卡

以下为主要修改信息

代码语言:javascript
复制
ONBOOT=yes
IPADDR=本地IP地址
PREFIX=子网掩码
GATEWAY=网关地址
DNS1=DNS地址

配置完成后,用service network restart命令重启网络

2、环境准备工作:

以下这些包都是需要提前安装,特别是ed.rpm包

代码语言:javascript
复制
yum -y install epel-release 
yum install –y git.x86_64
yum install –y gcc.x86_64 gcc-c++.x86_64
yum install –y ccache
yum install –y ed(ed包非常重要,数据库初始化的时候如果没有安装这个包的话,会报错,数据库命令无法执行)
yum install -y readline.x86_64 readline-devel.x86_64
yum install -y bison.x86_64 bison-devel.x86_64
yum install -y flex.x86_64 flex-devel.x86_64
yum install -y zlib.x86_64 zlib-devel.x86_64
yum install -y openssl.x86_64 openssl-devel.x86_64
yum install -y pam.x86_64 pam-devel.x86_64
yum install –y libcurl.x86_64 libcurl-devel.x86_64
yum install -y bzip2-libs.x86_64 bzip2.x86_64 bzip2-devel.x86_64
yum install -y libssh2.x86_64 libssh2-devel.x86_64
yum install -y python-devel.x86_64
yum install -y python-pip 
yum install -y netstat-tools(netstat 命令必须也要有,否则查询GP端口状态时无法查询到)

二.安装前准备(所有的机器都要修改,用ROOT用户执行)

1)修改主机名:

代码语言:javascript
复制
(Centos7之前命令)
[root@gpm ~]# vi /etc/sysconfig/network  
NETWORKING=yes 
HOSTNAME=gp

(Centos7之后命令) 
[root@gpm ~]# vi /etc/hostname 
gp 

主节点gpmaster,备用主节点standby,其余节点gpseg1,gpseg2…..以此类推

2)修改/etc/hosts文件

修改完各主机名后,hosts文件需要进行配置,主要是为了不输入ip的方式互通。

代码语言:javascript
复制
[root@gpm ~]# vi /etc/hosts 
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
##以下是新增信息 
192.168.0.10  gp  
192.168.0.11  gpdata1  
192.168.0.12  gpdata2 
(主机ip地址  主机名 ) 

这里的主机ip地址和主机名一定要与其他机器的主机名和ip地址对应,最终可以使用ping命令测试是否配置好了:

代码语言:javascript
复制
[root@gpm ~]# ping gp 
PING gp(192.168.0.10) 56(84) bytes of data. 
64 bytes from sdw1 (192.168.0.10): icmp_seq=1 ttl=64 time=1.14 ms 
64 bytes from sdw1 (192.168.0.10): icmp_seq=2 ttl=64 time=0.726 ms 
64 bytes from sdw1 (192.168.0.10): icmp_seq=3 ttl=64 time=0.714 ms  

[root@gp~]# ping gpdata1 
PING gpdata1(192.168.0.11) 56(84) bytes of data. .
64 bytes from sdw2 (192.168.0.11): icmp_seq=1 ttl=64 time=0.940 ms  

[root@gp~]# ping gpdata2 
PING gpdata2(192.168.0.12) 56(84) bytes of data. 
64 bytes from sdw3 (192.168.0.12): icmp_seq=1 ttl=64 time=1.62 ms 
64 bytes from sdw3 (192.168.0.12): icmp_seq=2 ttl=64 time=0.669 ms

一定要使用主机名来测试,使用ip地址测试无效。

3)修改系统内核

代码语言:javascript
复制
[root@gpm ~]# vi /etc/sysctl.conf 
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 

[root@dw-greenplum-1~]# sysctl -p(让配置生效) 

注意每台机器都要修改,不然就会初始化不成功

4)修改文件打开限制(每台机器都要修改):

代码语言:javascript
复制
[root@gpm ~]# vi /etc/security/limits.conf 
# End of file 
* soft nofile 65536 
* hard nofile 65536 
* soft nproc 131072 
* hard nproc 131072 

在这个文件文末添加上面四行就可以了。

5)关闭防火墙(每台机器都要)

[root@gpm selinux]# vim /etc/selinux/config

关闭防火墙
关闭防火墙

即SELINUX=disabled

代码语言:javascript
复制
centos7,关闭防火墙命令
[root@gpm ~]systemctl stop firewalld.service #停止firewall 
[root@gpm ~]systemctl disable firewalld.service #禁止firewall开机启动 

Centos6关闭防火墙命令 
[root@gpm ~]chkconfig iptables off 

6)创建用户和用户组

代码语言:javascript
复制
[root@mdw ~]# useradd gpadmin 
[root@mdw ~]# passwd gpadmin 
Changing password for user gpadmin. 
New password:输入密码 
Retype new password:确认密码 
passwd: all authentication tokens updated successfully. 

好了现在准备工作已经做好了,可以开始安装Greenplum了

注:greenplum4+版本默认安装目录在/usr/local/目录下

三.安装Greenplum

1)下载安装包

https://network.pivotal.io/products/pivotal-gpdb#/releases/1683

2)创建配置文件

代码语言:javascript
复制
[root@gpm ~]$vim /home/gpadmin/conf/hostlist 
gpm 
gpdata1
gpdata2 

[root@gpm ~]$vim /home/gpadmin/conf/seg_hosts  
gpdata1 
gpdata2 

按照上面的文件内容创建hostlist和seg_hosts文件,greenplum4+版本在安装时会用到hostlist文件。

这里文件中的gp、pgdata1、gpdata2即为之前在/etc/hosts文件中配置的最后一个参数

3)打通所有节点

greenplum_path.sh中保存了运行Greenplum的一些环境变量设置,包括GPHOOME、PYTHONHOME等设置

代码语言:javascript
复制
[gpadmin@gpm ~]$ source /usr/local/greenplum-db/greenplum_path.sh
[gpadmin@gpm ~]$ gpssh-exkeys -f /home/gpadmin/hostlist 

这一步gpssh-exkeys文件中有很多命令不一定能执行成功,需要自行排查处理。也可以手工做互信。

手工做免密

先用ssh-keygen生成公私钥,然后用ssh-copy-id分发密钥到各个节点.

root用户和gpadmin用户都需要做免密,

GreenPlum做免密,只需要master和各数据节点做免密,数据节点之间不需要做免密。

免密配置
免密配置

在安装GP之前,将免密做完,在安装GP时可以自动将包分发到各个节点.否则只能手动分发

4)master上安装Greenplum(只需master主节点即可,root用户执行)

将下载的文件放在CenOS系统中自己能找到的位置即可,给该文件赋予执行权限,之后执行该文件,即开始安装

代码语言:javascript
复制
[root@mdw ~]# chmod +x greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin 

[root@mdw ~]# ./greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin 

Greenplum4+默认安装路径在/usr/local下

注:如果免密没做好,就需要手工分发包到每台机器,并手工修改文件所属用户

5)测试各节点是否联通

代码语言:javascript
复制
[gpadmin@gpm ~]$ gpssh -f /home/gpadmin/conf/seg_list  
Note: command history unsupported on this machine ... 
=> pwd 
[gp] /home/gpadmin 
[gpdata1] /home/gpadmin 
[gpdata2] /home/gpadmin 
=> exit 

6)批量创建Greenplum数据存放目录

代码语言:javascript
复制
[gpadmin@gpm conf]$ gpssh -f hostlist
=> mkdir gpdata
[gp]
[gpdata1]
[gpdata2]
=> cd gpdata
[gp]
[gpdata1]
[gpdata2]
=> mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
[gp]
[gpdata1]
[gpdata2]
=> ll
[gp] 总用量 20
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
[gpdata1] 总用量 20
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
[gpdata2] 总用量 20
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
=> exit

四.初始化数据库

1.配置.bash_profile环境变量(每台机器)

代码语言:javascript
复制
[gpadmin@gpm ~]$ cd
[gpadmin@gpm ~]$ cat .bash_profile 
source /opt/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=testDB
[gpadmin@mdw ~]$ source .bash_profile  (让环境变量生效)

2.初始化配置文件

初始化 Greenplum 配置文件模板都在"../greenplum-db/docs/cli_help/gpconfigs"目录下,gpinitsystem_config是初始化 Greenplum 的模板,此模板中 Mirror Segment的配置都被注释;创建一个副本,对其以下配置进行修改:

[gpadmin@gp ~]$cd /usr/local/greenplum-db/docs/cli_help/gpconfigs

[gpadmin@gp ~]$cp gpinitsystem_config /home/gpadmin/gpinitsystem_config

[gpadmin@gp ~]$vim gpinitsystem_config

#以下为文本要修改的属性字段配置

代码语言:javascript
复制
#资源目录为在前面创建的资源目录,配置几次资源目录就是每个子节点有几个实例(这里配置了2个)
declare -a DATA_DIRECTORY=(/opt/greenplum/data/gpdatap1 /opt/greenplum/data/gpdatap2) 
ARRAY_NAME=”testDB”      #配置集群名称 
MASTER_HOSTNAME=gp       #master主节点的主机名称 
MASTER_DIRECTORY=/home/gpadmin/gpdata/master    #创建master存放路径 
DATABASE_NAME=gp_sydb    #配置的初始化数据库名称 
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts   #创建的文件gpinitsystem_config 

初始化gp时,我们只创建segment,不要去创建mirror,如果初始化时同时创建segment和mirror,mirror有的节点会有问题,在启动的时候无法启动,这是gp4+版本的一个bug,特此说明。

3.执行初始化

代码语言:javascript
复制
[gpadmin@gp ~]gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -h /home/gpadmin/conf/seg_hosts 

若初始化失败,需要删除/home/gpadmin/gpdata下的数据资源目录重新初始化;

五、创建数据库

初始化完成后,我们可以创建数据库,并创建用户进行登录使用了。

1)新建数据库

createdb -h localhost -p 5432 mygpdata

2)登录到mygpdata数据库中创建新用户,并给该用户赋权

psql mygpdata --登录数据库

CREATE USER test WITH PASSWORD 'P@ssw0rd' --设置密码

ALTER ROLE "test" SUPERUSER; --给账户赋予超级管理员权限.

3)设置远程登陆权限,只要在主节点下执行

vi /data /master/gpseg-1/pg_hba.conf

配置pg_hba.conf文件
配置pg_hba.conf文件

参数1:远程host,本地local

参数2:数据库名称

参数3:用户名

参数4:授权IP地址

参数5:加密方式

4)重启数据库

Gpstop(停止) -M fast(后面参数强制停止)

gpstart(启动)

5)查看GP状态 gpstate

gp状态查询
gp状态查询

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.Greenplum集群服务器准备
  • 二.安装前准备(所有的机器都要修改,用ROOT用户执行)
  • 三.安装Greenplum
  • 四.初始化数据库
  • 五、创建数据库
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档