greenplum安装详细过程

本文详细介绍Greenplum数据库在四台服务器上的部署过程,包括系统参数配置、GP安装、初始化及附加操作如standby和mirror设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天又帮其他项目装了一遍GP,加上之前的两次,这是第三次了,虽然每次都有记录,但这次安装还是发现漏写了一些步骤,在此详细记录一下,需要的童鞋可以借鉴。

1、准备

这里准备了4台服务器,1台做master,1台做standby,4台都做存储,为了保密真实的IP地址和主机名都换成“艺名”了。

复制代码
OS:Red Hat Enterprise Linux Server release 6.4 (Santiago)
GP:greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.zip
JDK:1.7+

192.168.1.100  bj-gp-node1(segment master)
192.168.1.101  bj-gp-node2(segment standby)
192.168.1.102  bj-gp-node3(segment)
192.168.1.103  bj-gp-node4(segment)
复制代码
greenplum官网下载地址:http://gpn.greenplum.com/download.php (注:需要注册后才能下载)

2、系统参数配置

系统参数配置的修改需要在每个节点服务器上执行

2.1.修改Linux内核参数

复制代码
[root@bj-gp-node1 ~]# vi /etc/sysctl.conf

Kernel sysctl configuration file for Red Hat Linux

For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and

sysctl.conf(5) for more details.

Use ‘/sbin/sysctl -a’ to list all possible parameters.

Controls IP packet forwarding

net.ipv4.ip_forward = 0

Controls source route verification

net.ipv4.conf.default.rp_filter = 1

Do not accept source routing

net.ipv4.conf.default.accept_source_route = 0

Controls the System Request debugging functionality of the kernel

kernel.sysrq = 1

Controls whether core dumps will append the PID to the core filename.

Useful for debugging multi-threaded applications.

kernel.core_uses_pid = 1

Controls the use of TCP syncookies

net.ipv4.tcp_syncookies = 1

Disable netfilter on bridges

#net.bridge.bridge-nf-call-ip6tables = 0
#net.bridge.bridge-nf-call-iptables = 0
#net.bridge.bridge-nf-call-arptables = 0

Controls the default maxmimum size of a mesage 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 shared memory segments, in pages

#kernel.shmall = 4294967296
kernel.shmall = 4000000000

net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog=10000
vm.overcommit_memory=2
net.ipv4.conf.all.arp_filter = 1
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
复制代码

2.2.修改Linux最大限制

[root@bj-gp-node1 ~]# vi /etc/security/limits.conf
#greenplum configs

  • soft nofile 65536
  • hard nofile 65536
  • soft nproc 131072
  • hard nproc 131072

2.3.I/O调整优化

[root@bj-gp-node1 ~]# vi /boot/grub/menu.lst
#greenplum configs
elevator=deadline

2.4.添加所有节点到HOST

[root@bj-gp-node1 ~]# vi /etc/hosts
192.168.1.100  bj-gp-node1
192.168.1.101  bj-gp-node2
192.168.1.102  bj-gp-node3
192.168.1.103  bj-gp-node4

2.5.关闭防火墙

[root@bj-gp-node1 ~]# chkconfig --list iptables
[root@bj-gp-node1 ~]# chkconfig --level 0123456 iptables off

2.6.设置SELINUX

[root@bj-gp-node1 ~]# vi /etc/selinux/config
SELINUX=disabled

2.7.重启系统使配置生效

[root@bj-gp-node1 ~]# reboot

3、GP安装

GP的安装操作都是在主节点master上执行的

3.1.创建gpadmin用户

[root@bj-gp-node1 ~]# useradd gpadmin
[root@bj-gp-node1 ~]# passwd gpadmin

3.2.设置gpadmin用户环境

复制代码
[gpadmin@bj-gp-node1 ~]$ cd /home/gpadmin
[gpadmin@bj-gp-node1 ~]$ vi .bashrc
[gpadmin@bj-gp-node1 ~]$ vi .bash_profile

.bashrc和.bash_profile最后都添加下面两行
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data1/gpdata/master/gpseg-1
复制代码
设置完后记得source一下使其立即生效

3.3.上传并解压安装包

将greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.zip上传至master的/opt/目录下

[root@bj-gp-node1 opt]# /bin/bash greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.bin
按提示输入回车或yes 这一步会将安装包解压到/usr/local/下,并建立软连接greenplum-db

3.4.准备节点服务器信息文件

后面的批量安装会用到这两个文件,如果all_host和all_segment内容一样,可以只创建一个文件

复制代码
[root@bj-gp-node1 opt]# mkdir -p /opt/gpinit/
[root@bj-gp-node1 gpinit]# touch all_host
[root@bj-gp-node1 gpinit]# touch all_segment
all_host和all_segment内容:
bj-gp-node1
bj-gp-node2
bj-gp-node3
bj-gp-node4
复制代码

3.5.建立节点服务器间的信任

[root@bj-gp-node1 local]# gpssh-exkeys -f /opt/gpinit/all_host
按照提示输入root密码,记住这一步不能输入gpadmin的密码,因为批量安装时需要在/usr/local下创建目录,需要root权限

3.6.批量安装

[root@bj-gp-node1 local]# gpseginstall -f /opt/gpinit/all_host -u gpadmin -p gpadmin
这一步其实就是将master上的greenplum打包通过scp命令传到all_host中的主机上,并赋予目录gpadmin的权限

3.7.检查批量安装情况

[root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_host -e ls -l $GPHOME
返回结果中各节点目录一致则成功

3.8.创建存储目录

复制代码
master
[root@bj-gp-node1 local]# mkdir -p /data1/gpdata/master
[root@bj-gp-node1 local]# chown gpadmin:gpadmin /data1/gpdata/master

segment
[root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_host -e ‘mkdir -p /data1/gpdata/primary’
[root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_host -e ‘chown gpadmin:gpadmin /data1/gpdata/primary’

mirror
[root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_segment -e ‘mkdir -p /data1/gpdata/mirror’
[root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_segment -e ‘chown gpadmin:gpadmin /data1/gpdata/mirror’

复制代码

3.9.设置时钟同步

vi /etc/ntp.conf 在server第一行添加下面两行
server 192.168.1.1
server 192.168.1.2
重启ntpd服务 /etc/init.d/ntpd restart
查看ntp同步情况 ntpq -p
使ntpd服务重启服务器后也启动 chkconfig --level 0123456 ntpd on

3.10.创建GP初始化文件

[gpadmin@bj-gp-node1 ~]$ mkdir /home/gpadmin/gpconfigs
[gpadmin@bj-gp-node1 ~]$ cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
[gpadmin@tj-soc-c04-csfb1 gpconfigs]$ chmod 775 gpinitsystem_config

3.10修改GP初始化文件

复制代码
[gpadmin@bj-gp-node1 gpconfigs]$ vi gpinitsystem_config

FILE NAME: gpinitsystem_config

Configuration file needed by the gpinitsystem

################################################

REQUIRED PARAMETERS

################################################

Name of this Greenplum system enclosed in quotes.

ARRAY_NAME=“BJ Greenplum DW”

Naming convention for utility-generated data directories.

SEG_PREFIX=gpseg

Base number by which primary segment port numbers
are calculated.

PORT_BASE=40000

File system location(s) where primary segment data directories
will be created. The number of locations in the list dictate
the number of primary segments that will get created per
physical host (if multiple addresses for a host are listed in
the hostfile, the number of segments will be spread evenly across
the specified interface addresses).

declare -a DATA_DIRECTORY=(/data1/gpdata/primary /data1/gpdata/primary)

OS-configured hostname or IP address of the master host.

MASTER_HOSTNAME=bj-gp-node1

File system location where the master data directory
will be created.

MASTER_DIRECTORY=/data1/gpdata/master

Port number for the master instance.

MASTER_PORT=5432

Shell utility used to connect to remote hosts.

TRUSTED_SHELL=ssh

Maximum log file segments between automatic WAL checkpoints.

CHECK_POINT_SEGMENTS=8

Default server-side character set encoding.

ENCODING=UNICODE

################################################

OPTIONAL MIRROR PARAMETERS

################################################

Base number by which mirror segment port numbers
are calculated.

MIRROR_PORT_BASE=50000

Base number by which primary file replication port
numbers are calculated.

REPLICATION_PORT_BASE=41000

Base number by which mirror file replication port
numbers are calculated.

MIRROR_REPLICATION_PORT_BASE=51000

File system location(s) where mirror segment data directories
will be created. The number of mirror locations must equal the
number of primary locations as specified in the
DATA_DIRECTORY parameter.

declare -a MIRROR_DATA_DIRECTORY=(/data1/gpdata/mirror /data1/gpdata/mirror)

################################################

OTHER OPTIONAL PARAMETERS

################################################

Create a database of this name after initialization.

DATABASE_NAME=bj_gp

Specify the location of the host address file here instead of
with the the -h option of gpinitsystem.

#MACHINE_LIST_FILE=/home/gpadmin/gpconfigs/hostfile_gpinitsystem

复制代码

3.11.初始化GP

[gpadmin@bj-gp-node1 ~]$ gpinitsystem -c /home/gpadmin/gpconfigs/gpinitsystem_config -h /opt/gpinit/all_host
中间需要输入一次:Y

如果没有报ERROR,GP数据库就安装好了。下面讲一些附加操作

4、附加项

4.1增加standby

一个gp集群只有一个master肯定会让人不放心,还好有备用,当master宕掉后,会自动启用standby作为master,下面来看一下standby怎么添加

复制代码
在standby服务器上执行
[root@bj-gp-node2 ~]# mkdir /data1/gpdata/master
[root@bj-gp-node2 ~]# chown gpadmin:gpadmin /data1/gpdata/master

在master服务器上执行
[gpadmin@bj-gp-node1 ~]$ gpinitstandby -s bj-gp-node2
中间输入一次Y
复制代码

4.2.增加mirror

mirror就是镜像,也叫数据备份。mirror对于数据存储来说很重要,因为我们的服务器指不定什么时候出毛病,有mirror就好很多了,因为两台存储节点同时宕掉的几率还是很小的。如果前面在GP初始化文件里忘记配置mirror了,请按照下面的方法添加

[gpadmin@bj-gp-node1 ~]$ gpaddmirrors -p 1000
运行过程中需要输入两次mirror路径:/data1/gpdata/mirror

4.3.设置访问权限

打开/data1/gpdata/master/gpseg-1/pg_hba.conf 按照最下面的格式添加客户端ip或网段

#user define
host all all 192.168.1.0/24 trust
host all all 127.0.0.1/28 trust

4.4.访问方式

可以通过gpAdmin桌面客户端来访问,也可以用命令行来访问,下面来说一下命令行访问的方式,loach是后面添加的用户

[gpadmin@bj-gp-node1 ~]$ psql -d tj_csfb -h bj-gp-node1 -p 5432 -U gpadmin
[gpadmin@bj-gp-node1 ~]$ psql -d tj_csfb -h bj-gp-node1 -p 5432 -U loach

4.5.创建用户

通过命令行登录以后,执行下面的命令

CREATE ROLE loach WITH LOGIN;
ALTER ROLE loach WITH PASSWORD ‘loach’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值