Greenplum集群部署小记

Greenplum的分布式架构方案MPP对于海量数据处理还是很给力的,今天专门抽时间搭建了一下测试环境。

首先来简单看下Greenplum的架构,这个和Oracle,MySQL还是大不同。

它里面几乎糅括了所有的主从角色概念,比如GP节点就类似于一个集群分发器,是有standby的角色的,数据节点是segment,是有primary和mirror做为互备高可用的。

限于环境情况,我用了3台虚拟机来模拟这个集群。

其中gp01是GP计算节点,gp02,gp03是segment和mirro节点。

192.168.206.129 gp01 192.168.206.128 gp02 192.168.206.130 gp03

GP节点的standby在gp02上面。

部署的时候我用了4个segment.

所以gp02上面的结构是这样的:

primary1 primary2 mirror1 mirror2 gp_standby

gp03的结构是这样的: primary3 primary4 mirror3 mirror4

搭建GP的过程其实还是有点曲折的,但是技术点其实不是很多,回过头来看复杂度其实还好。

我们需要创建GP的标准用户,比如gpadmin

groupadd gpadmin useradd -g gpadmin gpadmin passwd gpadmin

为了能够在各个节点上面做到适配和统一,每个节点都可以建立一套统一的目录结构,比如:

cd /data mkdir -p /data/greenplum_data/{gpmaster,gpdatap1,gpdatap2,gpdatap3,gpdatap4,gpdatap5,gpdatap6,gpdatam1,gpdatam2,gpdatam3,gpdatam4,gpdatam5,gpdatam6} chown -R gpadmin:gpadmin /data/greenplum_data/ 需要注意的是主机的配置,这里建议是使用主机名的方式,避免是IP的方式。

cat /etc/hosts 192.168.206.129 gp01 192.168.206.128 gp02 192.168.206.130 gp03

前期的基本准备就差不多这些,比如内核参数,比如安装包等先略过了。

值得一提的是两个工具gpssh和gpscp,是用Python实现的,可以简单封装一下,就能拿过来自己用了。在部署的时候还是很清晰的。

gpssh gpscp

还有一点不错的就是GP的安装自带了一个配置文件,这个确实很省事。

source /usr/local/greenplum-db/greenplum_path.sh

软件的部署就是解压的过程,没什么可说的了。

说下创建数据库吧。

初始化几个变量:

export MASTER_DATA_DIRECTORY=/data/greenplum_data/gpmaster export PGPRORT=5432 export PGDATABASE=testDB

核心就是配置文件 init_seg_mirror_config了,内容如下:

ARRAY_NAME="Greenplum"

MACHINE_LIST_FILE=/usr/local/greenplum-db/config/seg_hosts

SEG_PREFIX=gpseg

PORT_BASE=33000

declare -a DATA_DIRECTORY=(/data/greenplum_data/gpdatap1 /data/greenplum_data/gpdatap2 )

MASTER_HOSTNAME=gp01

MASTER_DIRECTORY=/data/greenplum_data/gpmaster

MASTER_PORT=5432

TRUSTED_SHELL=ssh

CHECK_POINT_SEGMENTS=8

ENCODING=UTF-8

MIRROR_PORT_BASE=43000

REPLICATION_PORT_BASE=34000

MIRROR_REPLICATION_PORT_BASE=44000

declare -a MIRROR_DATA_DIRECTORY=(/data/greenplum_data/gpdatam2 /data/greenplum_data/gpdatam1)

DATABASE_NAME=testDB

安装使用如下的方式即可。

gpinitsystem -c ./init_seg_mirror_config --locale=C --max_connections=48 --su_password=gpadmin -s gp02

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2018-05-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

MySQL存储日志并使用Loganalyzer作为前端展示

为什么要使用日志 在生产环境中我们可能需要一个较为完整的日志系统来查看运行中主机服务的状态和所作出的操作,我们可以在较大型的网络架构中使用ELK来实现对日志的收...

3319
来自专栏Hadoop实操

如何使用Lily HBase Indexer对HBase中的数据在Solr中建立索引

4413
来自专栏皮皮之路

【Spring】Spring boot多数据源历险记

3676
来自专栏SpringBoot 核心技术

第三十九章:基于SpringBoot & Quartz完成定时任务分布式单节点持久化

62710
来自专栏快乐八哥

Angular企业级开发(4)-ngResource和REST介绍

一、RESTful介绍 ? RESTful维基百科 REST(表征性状态传输,Representational State Transfer)是Roy Fie...

1927
来自专栏杨建荣的学习笔记

MySQL主从不一致的修复过程(r10笔记第96天)

昨天发现一个5.7的MySQL从库在应用日志的时候报出了错误。从库启用过了并行复制。Last Error的内容为: Last_Error: Coordinato...

4319
来自专栏FreeBuf

新手指南:DVWA-1.9全级别教程(完结篇,附实例)之XSS

* 本文原创作者:lonehand,转载请注明来自FreeBuf.COM 目前,最新的DVWA已经更新到1.9版本(http://www.dvwa.co.uk...

1.2K5
来自专栏JadePeng的技术博客

Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果

为了规范代码,我们一般会集成静态代码检测工具,比如PMD、FindBugs、Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮...

5133
来自专栏皮皮之路

【Spring】Spring boot多数据源历险记

48216
来自专栏数据和云

实战课堂:为什么更换存储之后一切正常但RAC集群启动不了?

这是一次来自生产实践的真实案例,某客户核心生产库由于进行新老存储替换变更操作后,Oracle RAC 两个节点均无法打开,数据库遭遇严重故障。

1263

扫码关注云+社区

领取腾讯云代金券