3分钟快速搭建Greenplum集群

38次阅读

共计 1549 个字符,预计需要花费 4 分钟才能阅读完成。

Greenplum 作为一个分布式计算平台,集群中有不同角色的节点,比方 master,segment,甚至专门的 etl 服务器。残缺的部署一个 Greenplum 集群通常须要多个物理机,并破费数天甚至数周的工夫。而利用 docker 和 docker-compose,启动一个 gp 集群其实只须要几分钟而已。本文将介绍如何疾速在 docker 中启动 Greenplum 集群。

1、筹备工作

首先从 github 下载 docker 的配置文件:

git clone https://github.com/lij55/gphost.git

而后从 Greenplum 官网 (https://network.pivotal.io/)…,gphost 的 docker 应用的 CentOS7 镜像。如果用 gp5 的环境,就将对应的 rpm 放到 example5/ 目录;如果用 gp6 的环境,就将对应的 rpm 放到 example6/ 目录。这里以 gp6 为例,下载 6.8 的安装文件 greenplum-db-6.8.0-rhel7-x86_64.rpm,放到 example6 目录下,执行 ls 能够看到内容大抵如下:

$ ls -1 example6
build.sh
docker-compose.yaml
Dockerfile
greenplum-db-6.8.0-rhel7-x86_64.rpm
readme.org
reset

2、运行容器

docker-compose.yaml 文件中定义了运行时依赖的 docker 容器,默认有 1 个 master 节点,2 个 segment 节点和 1 个 etl 服务器。如果须要减少更多 segment 机器或者批改端口,能够批改 docker-compose.yaml。而后启动容器:

# cd example6
docker build . -t mygreenplum6
docker-compose up -d

容器启动好之后,能够通过 ssh 或者 docker-compose 的 exec 命令连贯到 master 节点;这里须要留神的是肯定要用 gpadmin 用户,假设 master 上 ssh 端口为 6222,ssh 的登录命令为:

ssh -p 6222 gpadmin@127.0.0.1

明码为 changeme

3、初始化集群

在 master 节点,执行如下命令来,生成初始化配置的脚本

artifiact/prepare.sh -s 2 -n 2
  • -s 示意有 2 个 segment 机器(容器)
  • -n 示意在每个 segment 机器上创立 2 个 primary 节点

而后运行 gpinitsystem 命令来进行初始化。

gpinitsystem -a -c gpinitsystem_config

不出意外的话 greenplum 集群就启动成了。preprare.sh 脚本还生成了 env.sh 文件,不便配置 gp 须要的环境变量。此外,还有 artifact/post.sh 脚本会进行一些不便的设置,例如关上 gpadmin 的近程无明码拜访,将 env.sh 退出 gpadmin 用户的 bash 环境变量等。间接执行即可:

artifact/postinstall.sh

4、治理集群

集群创立后,能够通过 docker-compose 命令来治理集群:

docker-compose exec -u gpadmin mdw bash -i -c "gpstop -a"

而重新启动集群的命令为:

docker-compose exec -u gpadmin mdw bash -i -c "gpstart -a"

gp 的服务映射到本机的 6432 端口,能够用任何 gp 的客户端工具,比方 dbeavor 或者 pgadmin 进行拜访。

5、后续工作

  • 减少 mirror 和 standby master 的反对
  • 反对更多的组件,比方 pxf,madlib 等
  • 反对开源版 gp
  • 进一步简须要手动执行的操作 欢送大家到 github 上提 issue,PR

正文完
 0