官网下载地址:https://network.pivotal.io/products/pivotal-gpdb#/releases/1502/file_groups/378
![](https://img.haomeiwen.com/i7113886/c0ad27e49fcc54fb.png)
一、准备环境
1、配置hosts
a、vi /etc/hosts
10.10.134.11 dw-greenplum-1 mdw
10.10.134.12 dw-greenplum-2 sdw1
10.10.134.13 dw-greenplum-3 sdw2
b、scp到其他机器上
scp /etc/hosts root@10.10.134* :/etc/hosts
2、配置hostname
a、vi /etc/hostname 各个机器 用自己名称
mdw
b、vi /etc/sysconfig/network 各个机器 用自己名称
mdw
c、reboot 重启
如果以上还不起作用
正常显示:
![](https://img.haomeiwen.com/i7113886/5b7fc1ff6443ff38.png)
3、要安装的工具
yum install -y ed s是为了解决这个问题(http://www.freeoa.net/osuport/db/greenplum-db-study-install_3097.html)
yum -y install wget
yum install -y unzip zip
yum install -y unzip zip
yum -y install lsof
yum install -y net-tools which openssh-clients openssh-server less zip unzip iproute
4、关闭防火墙
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
5、网络相互通
ping IP
ping hostname
ssh hostname 能登录到其他机器上
二、Greenplum初始化前期配置
1、系统设置(所有机器)
a、sysctl.conf的设置
#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
#sysctl -p
b、limits.conf的设置
# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
分别copy其他机器上
# scp /etc/sysctl.conf root@swd1 : etc/sysctl.conf
# scp /etc/security/limits.conf root@swd1 : /etc/security/limits.conf
其他优化配置在测试环境先不配置 不影响启动
2、安装
a、创建gpadmin组合用户
# groupdel gpadmin
# userdel gpadmin
# groupadd -g 530 gpadmin
# useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
# passwd gpadmin
b、解压介质
# unzip greenplum-db-4.3.7.2-build-2-RHEL5-x86_64.zip
# chown gpadmin:gpadmin greenplum-db-4.3.7.2-build-2-RHEL5-x86_64.bin
c、创建安装目录
# mkdir -p /opt/greenplum
# chown -R gpadmin:gpadmin /opt/greenplum
d、Install [root@gpnode1 greenplum]
$ ./greenplum-db-4.3.7.2-build-2-RHEL5-x86_64.bin
确认license,输入yes
输入安装目录:/opt/greenplum
确认安装路径,yes
3、安装和配置greenplum到所有主机(操作master)
a、执行相应环境变量
# . /opt/greenplum/greenplum_path.sh
b、创建hostlist文件(所有机器的hostname)
# cat /tmp/hostlist
mdw
sdw1
sdw2
c、创建只包含segment节点的hostname
# cat /tmp/seg_hosts
sdw1
sdw2
d、安装segment节点
$ gpseginstall -f /tmp/seg_hosts -u gpadmin -p gpadmin
报错后应注意的一点:要在gpadmin用户下进行,执行source greenplum_path.sh,成功后 会提示连接另一端数据库
e、Check install
$ gpssh -f /tmp/hostlist -e ls -l $GPHOME
f、创建master 数据目录
# mkdir /data/master
# chown gpadmin /data/master
如有master-standby,则用如下命令创建相应目录:
# . /opt/greenplum/greenplum_path.sh
# gpssh -h standby-host -e 'mkdir /data/master'
# gpssh -h standby-host -e 'chown gpadmin /data/master'
g、创建segment节点数据目录
# . /opt/greenplum/greenplum_path.sh
# gpssh -f /tmp/seg_hosts -e 'mkdir -p /data/primary'
# gpssh -f /tmp/seg_hosts -e 'mkdir -p /data/mirror'
# gpssh -f /tmp/seg_hosts -e 'chown gpadmin /data/primary'
# gpssh -f /tmp/seg_hosts -e 'chown gpadmin /data/mirror'
h、配置ntp(测试环境可以不执行)
修改master的配置文件(/etc/ntp.conf )
server 127.0.0.1
修改segment的配置文件(/etc/ntp.conf )
server test1
Server standby-host
修改standby的配置文件(/etc/ntp.conf )
server ntp-server
Server test1
在master上执行如下命令同步时间:
# gpssh -f /tmp/seg_hosts -v -e 'ntpd'
4、check操作
$ gpcheck -f /tmp/hostlist
$ source /opt/greenplum-db/greenplum_path.sh
$ gpssh -f /tmp/hostlist #统一处理所有节点
$ gpssh-exkeys -f hostlist(比较关键)
5、配置./bash_profile
source /opt/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export GPPORT=5432
export PGDATABASE=test_DB
依次scp到更改节点
$ source .bash_profile
三、Greenplum初始化
1.创建gp的配置文件
$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config
$ cat gpinitsystem_config |grep -v "^#" |grep -v "^$"
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/primary)
MASTER_HOSTNAME=test1
MASTER_DIRECTORY=/data/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=(/data/mirror)
2 .Run Initialization
$ gpinitsystem -c gpinitsystem_config -h /tmp/seg_hosts
出现以下日志说明初始化成功了
![](https://img.haomeiwen.com/i7113886/4a5fbe6116d13b26.png)
参考的文档:https://blog.csdn.net/king13127/article/details/83989704
http://gitop.cc/posts/install-greenplum-in-docker/
https://blog.csdn.net/xudailong_blog/article/details/79874923
官方下载地址:https://network.pivotal.io/products/pivotal-gpdb
四、数据库操作
$ psql -d postgres(其中的一个初始库)
$ psql -d postgres #进入某个数据库
postgres=# \l # 查询数据库 List of databases
Name | Owner | Encoding | Access privileges
-----------+---------+----------+---------------------
gp_sydb | gpadmin | UTF8 |
postgres | gpadmin | UTF8 |
template0 | gpadmin | UTF8 | =c/gpadmin : gpadmin=CTc/gpadmin
template1 | gpadmin | UTF8 | =c/gpadmin : gpadmin=CTc/gpadmin
(4 rows)
postgres=# \i test.sql #执行sql
postgres=# copy 表名 to '/tmp/1.csv' with 'csv'; #快速导出单表数据
postgres=# copy 表名 from '/tmp/1.csv' with 'csv'; #快速导入单表数据
postgres=# \q #退出数据库
五、集群状态
gpstate -e #查看mirror的状态
gpstate -f #查看standby master的状态
gpstate -s #查看整个GP群集的状态
gpstate -i #查看GP的版本
gpstate --help #帮助文档,可以查看gpstate更多用法
六、过程中遇到的问题
1、在source .bash_profile的过程中导致 yum 不能用报: Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
Aborted
原因:把 root 用户下 python环境变量unset掉了,总是在执行python2.6 其实应该执行python2.7
解决:$ su root
# whereis python
![](https://img.haomeiwen.com/i7113886/631a0eee71fd3eab.png)
# cd ~
# vi .bash_profile
![](https://img.haomeiwen.com/i7113886/1ba94c27e906ff80.png)
# source .bash_profile
网友评论