Docker 中部署 Greenplum

本文详细介绍了在Docker环境下部署Greenplum数据库的过程,包括环境准备、Docker镜像创建、集群环境搭建、Greenplum数据库安装与初始化、环境变量配置等关键步骤,以及可能遇到的问题和解决方案。

一、环境准备

  • Docker
  • docker-compose
  • centos:7.5.1804 的 docker 镜像
  • greenplum-db-5.14.0-rhel7-x86_64.bin 二进制文件

1、查看 docker 和 docker-compose 版本

[bigdata@local-vm-320 gp]$ docker -v

Docker version 19.03.5, build 633a0ea

[bigdata@local-vm-320 gp]$ docker-compose -v

docker-compose version 1.25.1, build a82fef0

2、greenplum-db 下载地址:

https://network.pivotal.io/products/pivotal-gpdb/

二、准备 gp docker 环境

1、创建 GreenPlum Docker 镜像文件 Dockerfile

FROM centos:7.5.1804
RUN yum -y update; yum clean all
RUN yum install -y \
    net-tools \
    ntp \
    openssh-server \
    openssh-clients \
    less \
    iproute \
    which; yum clean all
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
RUN groupadd gpadmin
RUN useradd gpadmin -g gpadmin
RUN echo gpadmin | passwd gpadmin --stdin
ENTRYPOINT ["/usr/sbin/sshd", "-D"]

2、执行如下命令,创建 docker 镜像

docker build -t gjm-centos-ssh .

3、通过 docker-compose 启动所需要的 greenplum 集群环境。docker-compose.yaml 文件内容如下:

version: "3.2"

services:

  mdw:
    image: gjm-centos-ssh
    container_name: gpdb-mdw
    tty: true

  sdw1:
    image: gjm-centos-ssh
    container_name: gpdb-sdw1
    tty: true

  sdw2:
    image: gjm-centos-ssh
    container_name: gpdb-sdw2
    tty: true

4、执行如下命令,运行所需要的环境

docker-compose up -d 

三、部署 gp

1、通过 docker cp 命令将 greenplum-db-5.14.0-rhel7-x86_64.bin 拷贝到 mdw 的容器中。

docker cp greenplum-db-5.14.0-rhel7-x86_64.bin gpdb-mdw:/home/gpadmin

2、进入 gpdb-mdw 容器中,并切换到gpadmin用户下,查看刚拷贝的bin文件。

[bigdata@local-vm-320 ~]$ docker exec -it gpdb-mdw /bin/bash
[root@2e9585e22e2e /]# su - gpadmin
Last login: Sat May  9 07:26:03 UTC 2020 from 2e9585e22e2e on pts/6

3、执行greenplum的bin文件,将其安装在/home/gpadmin目录下.

[gpadmin@2e9585e22e2e ~]$ bash greenplum-db-5.14.0-rhel7-x86_64.bin

注意红色字体为需要输入的数据,参考如下:

********************************************************************************
Do you accept the Pivotal Database license agreement? [yes|no]
********************************************************************************

yes

********************************************************************************
Provide the installation path for Greenplum Database or press ENTER to
accept the default installation path: /usr/local/greenplum-db-5.14.0
********************************************************************************

/home/gpadmin/greenplum-db-5.14.0

********************************************************************************
Install Greenplum Database into /home/gpadmin/greenplum-db-5.14.0? [yes|no]
********************************************************************************

yes

********************************************************************************
/home/gpadmin/greenplum-db-5.14.0 does not exist.
Create /home/gpadmin/greenplum-db-5.14.0 ? [yes|no]
(Selecting no will exit the installer)
********************************************************************************

yes

Extracting product to /home/gpadmin/greenplum-db-5.14.0

********************************************************************************
Installation complete.
Greenplum Database is installed in /home/gpadmin/greenplum-db-5.14.0

Pivotal Greenplum documentation is available
for download at http://gpdb.docs.pivotal.io
********************************************************************************
[gpadmin@67758e384c8c ~]$ ls
greenplum-db  greenplum-db-5.14.0  greenplum-db-5.14.0-rhel7-x86_64.bin

4、创建目录 /home/gpadmin/gpconfig/ 和 文件 hostlist、seglist

[gpadmin@2e9585e22e2e ~]$ mkdir -p /home/gpadmin/gpconfig/

[gpadmin@2e9585e22e2e ~]$ cd /home/gpadmin/gpconfig/

[gpadmin@2e9585e22e2e ~]$ vi hostlist

[gpadmin@2e9585e22e2e ~]$ vi seglist

hostlist 内容如下

mdw
sdw1
sdw2

seglist 内容如下

sdw1
sdw2

5、Source the path file from your master host’s Greenplum Database installation directory

[gpadmin@2e9585e22e2e ~]$ cd

[gpadmin@2e9585e22e2e ~]$ source ~/greenplum-db/greenplum_path.sh

6、Config ssh key exchange(master server and gpadmin user)

[gpadmin@2e9585e22e2e ~]$ gpssh-exkeys -f /home/gpadmin/gpconfig/hostlist

输入 sdw1 密码:gpadmin 

7、Run the gpseginstall utility referencing the hostfile_exkeys file you just created

[gpadmin@2e9585e22e2e ~]$ gpseginstall -f /home/gpadmin/gpconfig/seglist

8、Confirm installation

[gpadmin@2e9585e22e2e ~]$ gpssh -f ~/gpconfig/hostlist -e ls -l $GPHOME

9、Creating the Data Storage Areas

on master

[gpadmin@2e9585e22e2e ~]$ mkdir -p ~/data/master

on segments

[gpadmin@2e9585e22e2e ~]$  gpssh -f ~/gpconfig/seglist -e "mkdir -p ~/data/primary"
[sdw1] mkdir -p ~/data/primary
[sdw2] mkdir -p ~/data/primary
[gpadmin@2e9585e22e2e ~]$ gpssh -f ~/gpconfig/seglist -e "mkdir -p ~/data/mirror"
[sdw1] mkdir -p ~/data/mirror
[sdw2] mkdir -p ~/data/mirror

10、Make a copy of the gpinitsystem_config file to use as a starting point and edit it as you need

[gpadmin@67758e384c8c ~]$ cp /home/gpadmin/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config ~/gpconfig/gpinitsystem_config

11、modify two line as following

vi ~/gpconfig/gpinitsystem_config

declare -a DATA_DIRECTORY=(/home/gpadmin/data/primary)
MASTER_DIRECTORY=/home/gpadmin/data/master

12、run the initialization utility 

[gpadmin@2e9585e22e2e ~]$ gpinitsystem -c gpconfig/gpinitsystem_config -h gpconfig/seglist

参考内容如下: 

[gpadmin@2e9585e22e2e ~]$ gpinitsystem -c gpconfig/gpinitsystem_config -h gpconfig/seglist

20200509:07:37:09:002513 gpinitsystem:2e9585e22e2e:gpadmin-[INFO]:-Checking configuration parameters, please wait...
20200509:07:37:09:002513 gpinitsystem:2e9585e22e2e:gpadmin-[INFO]:-Reading Greenplum configuration file gpconfig/gpinitsystem_config
20200509:07:37:09:002513 gpinitsystem:2e9585e22e2e:gpadmin-[INFO]:-Locale has not been set in gpconfig/gpinitsystem_config, will set to default value
20200509:07:37:09:002513 gpinitsystem:2e9585e22e2e:gpadmin-[INFO]:-Locale set to

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

magic_kid_2010

你的支持将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值