3分鐘快速搭建Greenplum集羣

Greenplum做爲一個分佈式計算平臺,集羣中有不一樣角色的節點,好比master,segment,甚至專門的etl服務器。完整的部署一個Greenplum集羣一般須要多個物理機,並花費數天甚至數週的時間。而利用docker和docker-compose,啓動一個gp集羣其實只須要幾分鐘而已。本文將介紹如何快速在docker中啓動Greenplum 集羣。git

一、準備工做

首先從github下載docker的配置文件:github

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能夠看到內容大體以下:docker

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

二、運行容器

docker-compose.yaml文件中定義了運行時依賴的docker容器,默認有1個master節點,2個segment節點和1個etl服務器。若是須要增長更多segment機器或者修改端口,能夠修改docker-compose.yaml。而後啓動容器:segmentfault

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

容器啓動好以後,能夠經過ssh或者docker-compose的exec命令鏈接到master節點;這裏須要注意的是必定要用gpadmin用戶,假定master上ssh端口爲6222,ssh的登陸命令爲:bash

ssh -p 6222 gpadmin@127.0.0.1

密碼爲changeme服務器

三、初始化集羣

在master節點,執行以下命令來,生成初始化配置的腳本ssh

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

四、管理集羣

集羣建立後,能夠經過docker-compose命令來管理集羣:post

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進行訪問。

五、後續工做

  • 增長mirror和standby master的支持
  • 支持更多的組件,好比pxf,madlib等
  • 支持開源版gp
  • 進一步簡須要手動執行的操做 歡迎你們到github上提issue,PR

image

相關文章
相關標籤/搜索