1. Greenplum简介

Greenplum是Pivotal公司基于PostgreSQL开发的一个面向数据仓库的关系型数据库,是开源的。有三个关键词可以描述:

1. Shared Nothing

各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,各处理单元之间通过协议通信,并行处理和扩展能力更好。各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。Share-Nothing架构在扩展性和成本上都具有明显优势。

2. MPP(Massively Parallel Processor大规模并行处理)

Greenplum可以将TB级的数据仓库负载分解,并使用所有的系统资源并行处理单个查询

3. MVCC(多版本控制)

MVCC以避免给数据库事务显式锁定的方式,最大化减少锁争用以确保多用户环境下的性能。在并发控制方面,使用MVCC而不是使用锁机制的最大优势是, MVCC对查询(读)的锁与写的锁不存在冲突,并且读与写之间从不互相阻塞。

2. GP架构

1. 主节点Master host的主要功能

访问系统的入口

数据库侦听进程 (postgres 默认5432端口)

处理所有用户连接

建立查询计划

协调工作处理过程

管理工具

系统目录表和元数据(数据字典)

不存放任何用户数据

2. 数据节点Segment host的主要功能

每段(Segment)存放

一部分用户数据一个系统可以有多段

用户不能直接存取访问

所有对段的访问都经过Master

数据库监听进程(postgres)监听来自Master的连接(primary:40000, mirror:50000)

Segment分primary和mirror两种,一般交错的存放在子节点上

当Primary Segment失败时,Mirror Segment将自动提供服务

Primary Segment恢复正常后,使用gprecoverseg –F  同步数据。

3. standby

为实现HA,可以为master节点创建standby节点,用于当 Master 节点损坏时提供 Master 服务,Standby 实时与 Master 节点的 Catalog 和事务日志保持同步

3. Greenplum安装

1.主机配置

主机名

IP

备注

rac1

10.45.53.30

master节点

rac2

10.45.53.31

segment节点1

rac3

10.45.7.128

segment节点2

2. 获取greenplum软件

Download VMware Tanzu™ Greenplum® — VMware Tanzu Network(需注册账号下载)

3. 解压安装(master节点)

unzip greenplum-db-5.4.0-rhel7-x86_64.zip

mkdir /greenplum

./greenplum-db-5.4.0-rhel7-x86_64.bin

定义环境变量:

cd /greenplum/greenplum-db-5.4.0

source ./greenplum_path.sh

创建主机文件存储segment主机和master主机

mkdir gpconfigs

root@rac1[/greenplum/greenplum-db-5.4.0/gpconfigs]#cat hostlist

rac1

rac2

rac3

root@rac1[/greenplum/greenplum-db-5.4.0/gpconfigs]#cat seg_hosts

rac2

rac3

4. 通过免密登录在segment节点安装gp

实现免密登录

gpssh-exkeys -f /greenplum/greenplum-db-5.4.0/gpconfigs/hostlist

向所有节点部署,用户名密码为gpadmin

gpseginstall -f /greenplum/greenplum-db-5.4.0/gpconfigs/hostlist -u gpadmin -p gpadmin

此时gpadmin用户已被自动创建,且密码为gpadmin

su - gpadmin

source  /greenplum/greenplum-db-5.4.0/greenplum_path.sh

建gpadmin用户之间的ssh免密登录,后续初始化时会用到

gpssh-exkeys -f /greenplum/greenplum-db-5.4.0/gpconfigs/hostlist

测试免密登录:

gpssh -f /greenplum/greenplum-db-5.4.0/gpconfigs/hostlist -e ls -l $GPHOME

chown -R gpadmin.gpadmin /greenplum

在master和segment节点创建存储区域(master节点执行):

mkdir /greenplum/data

mkdir -p  /greenplum/data/master

gpssh -f /greenplum/greenplum-db-5.4.0/gpconfigs/seg_hosts -e 'mkdir -p /greenplum/data/primary'

gpssh -f /greenplum/greenplum-db-5.4.0/gpconfigs/seg_hosts -e 'mkdir -p /greenplum/data/mirror'

5. 初始化Greenplum数据库系统

拷贝自带配置文件

cp /greenplum/greenplum-db/docs/cli_help/gpinitsystem_config  /greenplum/greenplum-db-5.4.0/

cd   /greenplum/greenplum-db-5.4.0/

chmod 775 gpinitsystem_config

gpadmin@rac1[/greenplum/greenplum-db-5.4.0]$cat gpinitsystem_config|grep -v "#"|grep -v "^$"

ARRAY_NAME="Greenplum Data Platform"

SEG_PREFIX=gpseg

PORT_BASE=40000

declare -a DATA_DIRECTORY=(/greenplum/data/primary)   #数据存储在segment节点上

MASTER_HOSTNAME=rac1

MASTER_DIRECTORY=/greenplum/data/master

MASTER_PORT=5434  #由于我的主机上已经装了pg,占用了默认的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=(/greenplum/data/mirror) #数据存储在segment节点上

DATABASE_NAME=my

运行初始化工具

gpinitsystem -c gpinitsystem_config -h /greenplum/greenplum-db/gpconfigs/seg_hosts

如果有stanby mater (smdw)节点需要执行:

gpinitsystem -c gpinitsystem_config -h /greenplum/greenplum-db/gpconfigs/all_hosts -s smdw -S

6.配置.bash_profile(master和segment节点最好都配)

gpadmin@rac1[/greenplum]$cat .bash_profile

source /greenplum/greenplum-db-5.4.0/greenplum_path.sh

export MASTER_DATA_DIRECTORY=/greenplum/data/master/gpseg-1

export PGPORT=5434

export PGDATABASE=my

source  .bash_profile

psql测试

7.其他

在安装的时候,我们为root用户之间建立了ssh免密登录,现在安装完成了,应该删除掉,以免发生安全隐患。

gpadmin用户之间的ssh免密登录不要删除!现在gpadmin用户的密码均为“gpadmin”,为了避免发生安全隐患,请修改gpadmin用户的密码

4.客户端访问Greenplum数据库

由于gp是pg的分布式变种,我们可以通过pgadmin客户端来访问gp数据库,但是需要在master节点上配置

添加下面这行到/greenplum/data/master/gpseg-1/pg_hba.conf

#allow client to access

host     all         gpadmin         0.0.0.0/0      trust

这样gp就允许被终端访问了

5. 新增segment节点

1. 新增rac4,shard12作为segment节点3,节点4

由于开启了mirror,一旦增加mirror,无法删除,故最少需要增加两个segment节点,否则报错

添加条目到/etc/hosts

2. 查询某表当前的分布情况

select * from gp_segment_configuration;

select gp_segment_id, count(*) from test1 group by gp_segment_id;

3. 主节点新建segment节点主机文件

gpadmin@rac1[/greenplum/greenplum-db-5.4.0/gpconfigs]$cat new_host

rac4

shard12

4. 配置两个segment新节点

groupadd gpadmin

useradd -g gpadmin gpadmin

passwd gpadmin

mkdir /greenplum

usermod -d /greenplum gpadmin

chown -R gpadmin.gpadmin /greenplum

su - gpadmin

mkdir -p /greenplum/data

mkdir -p /greenplum/data/primary

mkdir -p /greenplum/data/mirror

从master节点设置ssh免密登录

gpssh-exkeys -e hostlist -x new_host

从任一segment节点scp安装文件夹给两个segment节点

scp -r greenplum-db-5.4.0 shard12:/greenplum

scp -r greenplum-db-5.4.0 rac1:/greenplum

5. 初始化segment并加入集群

产生配置文件:

gpexpand -f new_host

初始化segment数据库:

gpexpand -i gpexpand_inputfile_20190806_192831

查看新增节点:

重分布表

alter table test1 set with(reorganize=true);

6. gpcc-web安装

以下操作均在master主机的gpadmin用户下

1.安装data collection agent--创建gpperfmon数据库和gpmon用户,--password后跟gpmon用户密码

gpperfmon_install --enable --password  12345 --port 5432

2.重启gp

gpstop -r

3.检查gpmmon监控是否启动

netstat -an|grep 8888

ps -ef | grep gpmmon

4.检查是否集群中的所有主机都被监控

psql -d 'gpperfmon' -c 'select * from system_now;'

5.在集群所有主机上创建gpcc-web安装目录

gpssh -f /greenplum/greenplum-db-5.28.0/gpconfigs/allhosts

=> cd /data

[mgr1]

[sdw2]

[ mdw]

[sdw1]

=> mkdir gpcc-web

[mgr1]

[sdw2]

[ mdw]

[sdw1]

6.解压安装greenplum-cc-web-4.10.0-gp5-rhel7-x86_64.zip

unzip greenplum-cc-web-4.10.0-gp5-rhel7-x86_64.zip

cd greenplum-cc-web-4.10.0-gp5-rhel7-x86_64

./gpccinstall-4.10.0 -c install.conf

cat install.conf

path = /data/gpcc-web

# Set the display_name param to the string to display in the GPCC UI.

# The default is "gpcc"

display_name = gpcc

master_port = 5432

web_port = 28080

rpc_port = 8899

enable_ssl = false

# Uncomment and set the ssl_cert_file if you set enable_ssl to true.

#ssl_cert_file = /data/gpcc-web/cert

# User interface language: 1=English, 2=Chinese, 3=Korean, 4=Russian, 5=Japanese

language = 1

7.启动gpcc

source /data/gpcc-web/greenplum-cc-4.10.0/gpcc_path.sh

gpcc start

添加source /data/gpcc-web/greenplum-cc-4.10.0/gpcc_path.sh到.bash_profile

8.检查gpcc

netstat -an|grep 28080

http://10.45.81.42:28080   gpmon/12345

9.将master生成的pg_hba.conf和.pgpass传到standby master

gpscp -h mgr1 $MASTER_DATA_DIRECTORY/pg_hba.conf =:$MASTER_DATA_DIRECTORY/

gpscp -h mgr1 ~/.pgpass =:~/

官方文档:Installing and Upgrading Pivotal Greenplum Command Center | Tanzu™ Greenplum GPCC Docs

10.可以手动将master上的gpcc切到standby master上

(1)master:

gpstop

gpcc stop

(2)stanby master:

gpactivatestandby -d $MASTER_DATA_DIRECTORY

修改/data/gpcc-web/greenplum-cc/conf/app.conf修改成master_host     = mgr1 (standby master主机名)

Greenplum分布式安装及增加节点相关推荐

  1. greenplum 实验,动态增加节点

    greenplum 实验,动态增加节点 1.我原有在hadoop4-hadoop6上初始化了一个greenplum的集群 2.所有的primary,mirror都启动着,我连接master,在两个表里 ...

  2. Storm 04_Storm单机模式搭建完全分布式安装部署集群drpc

    一.环境要求 JDK 1.6+ java -version Python 2.6.6+ python -V ZooKeeper3.4.5+ storm 0.9.4+ ----------------- ...

  3. ORACLE RAC如何增加节点

    ORACLE RAC系统是一个可以横向进行扩展的系统,当一个RAC系统计算能力不满足客户的需求时候,增加节点能够快速增加整个系统的计算能力,使得客户系统计算能力得到一定的提升,以满足客户不断增长的计算 ...

  4. hadoop1.1.2分布式安装---集群动态增减节点

    0 关于配置机器别名,配置IP和别名映射,设置IP,关闭防火墙和自启动,单机下配置ssh请参考 hadoop1.1.2伪分布式安装(单机版)的文章, 链接: http://chengjianxiaox ...

  5. ZooKeeper基础知识笔记(含3节点伪分布式安装配置流程)

    本笔记涉及代码:https://github.com/hackeryang/Hadoop-Exercises/tree/master/src/main/java/ZooKeeper 一.ZooKeep ...

  6. CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装

    摘要 CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装 目录[-] 1.系统环境说明 2.安装前的准备工作 2.1 关闭防火墙 2.2 检查ssh安装情况,如果没有则安装ssh ...

  7. HBase基础和伪分布式安装配置

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq1010885678/article/details/43796441 一.HBase(NoSQL ...

  8. hadoop集群的搭建(分布式安装)

    集群 计算机集群是一种计算机系统,他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作. 集群系统中的单个计算机通常称为节点,通常通过局域网连接. 集群技术的特点: 1.通过多台计算 ...

  9. hbase 伪分布安装 java_HBase基础和伪分布式安装配置

    一.HBase(NoSQL)的数据模型 1.1 表(table),是存储管理数据的. 1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定 1.3 ...

最新文章

  1. 单张GPU搞定GPT-3超参数!先训练小模型,再“一键迁移” | 已开源
  2. MySQL引擎特性GIS-R-TREE
  3. 国内首个 Kubernetes SIG-Cloud-Provider 子项目揭秘 | 云原生生态周报 Vol. 37
  4. layui添加复选框_对layui初始化列表的CheckBox属性详解,初始化属性
  5. java高级语言特性_Java语言高级特性——注解
  6. C++通过系统版本号获取windows系统版本
  7. matlab 按照某列以行为单位进行排序
  8. 一个简单的问题,为什么我要搞得复杂绕一大圈
  9. vue项目中通过图片url下载图片
  10. ppt模板怎样用到html中,手把手教你怎么选用PPT模板
  11. Maze环境以及DQN的实现
  12. Vista和Win2008中如何卸载IE8
  13. Uncaught DONException: Failed to execute ‘atob‘ on “window ‘: The string to be decoded is not carrec
  14. 20个案例掌握PL/SQL 基础
  15. js笔试面试题(随意)
  16. 【考研政治】2021肖八整理(时政部分)
  17. 2018纪中集训游记
  18. 全球最小的微型 ZigBee无线模块,认识一下Micro XBee
  19. 学习AS400艰难的历程
  20. 美容仪洁面器无线充电方案XS016

热门文章

  1. 微信小程序支持view触发转发分享功能
  2. 6.0.高等数学3-欧拉方程
  3. JavaScript:实现EulersTotient欧拉方程算法(附完整源码)
  4. 网线线序排列以及八字口诀
  5. 想转行网络安全,究竟是自学还是参加培训班?
  6. 使用Powershell卸载IE浏览器
  7. Navicat Premium 12 破解教程
  8. 简单、有效、全面的 Kubernetes 监控方案
  9. echarts双Y轴,左右Y轴数据一一对齐
  10. 我国量子态隐形传输获突破 超时空穿越或实现