当前位置: 首页 > news >正文

【赵渝强老师】基于PostgreSQL的MPP集群:Greenplum

在这里插入图片描述

Greenplum本质上是一个基于PostgreSQL的关系型数据库集群,实际上是由多个独立的数据库服务组合而成的一个逻辑数据库。与Oracle的RAC不同,这种数据库集群采取的是MPP(Massively Parallel Processing,大规模并行处理)架构。Greenplum最大的特点就是基于低成本的开放平台基础上提供强大的并行数据计算性能和海量数据管理能力。下图展示了Greenplum的体系架构。
在这里插入图片描述

视频讲解如下

【赵渝强老师】基于PostgreSQL的MPP集群:Greenplum

Greenplum的体系架构由三部分组成:Master Host、Segment Host、Interconnect,其中每个Segment Host相当于一个独立的PostgreSQL数据库实例。下表列举了每个组成部分的功能和作用。
在这里插入图片描述

在了解到了Greenplum的基本知识后,本小节将通过具体的操作步骤来演示如何安装和配置Greenplum集群。
在这里插入图片描述
《PostgreSQL数据库实战派》

一、以下步骤使用root用户在每台主机上执行

(1)禁用SELinux和防火墙

(2)编辑文件/etc/sysctl.conf修改内核配置参数,使用下面内容覆盖原有内容。

kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2

(3)生效内核配置参数。

sysctl -p

(4)编辑文件/etc/security/limits.conf配置资源限制参数。

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

(5)编辑文件/etc/hosts配置主机名和IP地址的映射关系。

192.168.79.11 node11
192.168.79.12 node12
192.168.79.13 node13
192.168.79.14 node14

(6)创建用户和用户组

groupadd gpadmin
useradd -g gpadmin gpadmin
passwd gpadmin

(7)创建需要的目录,并授权给gpadmin。

mkdir -p /home/gpadmin/data       (可以只在Segment上创建)
mkdir -p /home/gpadmin/master     (可以只在Master上创建)
chown -R gpadmin:gpadmin /home/gpadmin

(8)编辑文件/etc/sudoers给gpadmin用户加上sudo权限。

gpadmin ALL=(ALL)       ALL

(9)重启服务器。
(10)安装Greenplum。

yum -y install greenplum-db-6.24.3-rhel7-x86_64.rpm# 这一步将会把Greenplum默认安装到/usr/local/目录下。
# 这里需要配置阿里云YUM源和DNS
cd /etc/yum.repos.d/
rm -rf *
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 配置DNS
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

(11)授权给gpadmin。

chown -R gpadmin /usr/local/greenplum*
chgrp -R gpadmin /usr/local/greenplum*

(12)切换到gpadmin用户配置免密码登录

su - gpadmin
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub gpadmin@node11
....

二、以下步骤使用gpadmin用户在master主机上执行。

(13)在gpadmin用户主目录创建名为all_host的文件,内容为所有Greenplum主机名

node11
node12
node13
node14

(14)在gpadmin用户主目录创建名为seg_host的文件,内容为所有segment主机名

node11
node12
node13

(15)设置Greenplum环境。

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

(16)确认软件安装

gpssh -f all_host -e 'ls -l /usr/local/greenplum-db-6.24.3/'# 如果Greenplum安装成功,应该能够在没有密码提示的情况下登录到所有主机。

(17)验证主机环境(这里需要等待一段时间)

检查点对点网络传输速度# 双向同时发包,适合偶数个网口的情况
gpcheckperf -f all_host -r N -d /tmp > subnet1.out
# 单向顺序发包,适合奇数或偶数个网口的情况
gpcheckperf -f all_host -r n -d /tmp > subnet2.out检查全矩阵多对多网络传输速度
gpcheckperf -f all_host -r M -d /tmp > subnet3.out验证磁盘I/O和内存带宽性能
gpcheckperf -f seg_host -r ds -D -d /home/gpadmin/data > io.out

(18)编辑Greenplum初始化配置文件initgp_config,输入下面的内容:

SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/data)
MASTER_HOSTNAME=node14
MASTER_PORT=5432
MASTER_DIRECTORY=/home/gpadmin/master
DATABASE_NAME=gpdb

(19)初始化数据库。

gpinitsystem -c initgp_config -h seg_host# 输出的信息如下:
......
gpinitsystem:node14:gpadmin-[INFO]:-Greenplum Primary Segment Configuration
gpinitsystem:node14:gpadmin-[INFO]:----------------------------------------
gpinitsystem:node14:gpadmin-[INFO]:-node11 	33000 	node11 	/home/gpadmin/data/gpseg0 2
gpinitsystem:node14:gpadmin-[INFO]:-node12 	33000 	node12 	/home/gpadmin/data/gpseg1 3
gpinitsystem:node14:gpadmin-[INFO]:-node13 	33000 	node13 	/home/gpadmin/data/gpseg2 4Continue with Greenplum creation Yy|Nn (default=N):
> y  这里输入y

(20)数据库初始化完成后会自动启动数据库集群,并输出下面的信息:

gpinitsystem:node14:gpadmin-[WARN]:-*******************************************************
gpinitsystem:node14:gpadmin-[INFO]:-Greenplum Database instance successfully created
gpinitsystem:node14:gpadmin-[INFO]:-------------------------------------------------------

三、验证集群环境

(1)登录Greenplum集群

psql -d gpdb

(2)查询版本信息

gpdb=# select version();#输出的信息如下version                   
-----------------------------------------------------------------------PostgreSQL 9.4.26 (Greenplum Database 6.24.3) on x86_64-unknown-linux-gnucompiled by gcc (GCC) 6.4.0, 64-bit compiled on May  3 2023 20:34:57
(1 row)

《PostgreSQL数据库实战派》

(3)查询节点信息

gpdb=# select * from gp_segment_configuration;# 输出的信息如下:
......| port  | hostname | address |           datadir            
------+-------+----------+---------+------------------------------
......|  5432 | node14   | node14  | /home/gpadmin/master/gpseg-1
......| 33000 | node11   | node11  | /home/gpadmin/data/gpseg0
......| 33000 | node12   | node12  | /home/gpadmin/data/gpseg1
......| 33000 | node13   | node13  | /home/gpadmin/data/gpseg2
(4 rows)
http://www.dtcms.com/a/389754.html

相关文章:

  • leetCode算法题记录:27.移除元素
  • 自动化运维工具ansible
  • Roo Code 设置导入、导出与重置
  • 视觉检测技术讲解
  • LibreCAD-2.2+QT5.12+RTKLIB2.4.3
  • Pydantic Schemas 及其在 FastAPI 中的作用
  • SMS05 TVS二极管阵列的ESD和闭锁保护SOT23-6封装
  • Stream的常用API应用场景
  • 【DMA】DMA实战:用DMA操控外设
  • 深入理解传输层协议:UDP 与 TCP 的核心原理与应用
  • 教育行业数字化资料管理:构建安全合规、高效协同的一体化知识共享平台
  • Smart Launcher安卓版(安卓桌面启动器):安卓设备的智能启动器
  • Ansible如何写Callback 插件
  • 自动化测试框架需要具备哪些功能?
  • Pix2Pix中的对抗损失与L1损失:高频细节与低频结构的平衡艺术
  • mkcert生成证书本地或内网使用https
  • 【Python】关于移除Conda中已搭建环境的相关问题
  • 基于SpringBoot+Vue的校园兼职管理系统(WebSocket及时通讯、地图API、Echarts图形化分析)
  • 【K8S默认容器运行时】
  • Makefile学习(二)- 语法(变量、伪目标)
  • Winform自定义无边框窗体
  • 文献综述是什么?怎么写好一篇综述?
  • CLIP:开启多模态AI新时代的密钥(上)
  • @[TOC](位运算) # 常见位运算总结
  • 【Block总结】sMLP,全新的“稀疏MLP”模块|即插即用|原模型改进
  • TDengine IDMP 基本功能——数据可视化(4. 仪表盘)
  • 亚信安全与中国联通共同打造的联通联信一体化安全检测与响应平台亮相网安周
  • 短脉冲计数
  • 铝厂天车PLC远程调试解决方案:御控物联网网关赋能工业智造新生态
  • CPU-GPU预处理流程的核心和优化关键 格式流转