MPP架构海量数据分析仓库——Greenplum介绍

一、Greenplum背景

时间回到2002年,互联网行业经过近10年的发展,数据量正处于快速增长期:

  1、传统的主机计算模式在海量数据面前,除了造价昂贵外,在CPU计算和IO吞吐上不能满足海量数据的计算需求;

  2、传统数据库大多基于SMP架,纵向扩容(scale-up)模式遇到了瓶颈。

  3、分布式存储和分布式计算理论刚刚被提出来,Google的两篇著名论文关于GFS分布式文件系统和关于MapReduce 并行计算框架的理论引起业界的关注,分布式计算模式在互联网行业特别是收索引擎和分词检索等方面获得了巨大成功。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 14.0px "PingFang SC"; color: #333333; background-color: #ffffff }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 14.0px "PingFang SC"; color: #c35b50; background-color: #ffffff }
span.s1 { font: 14.0px Helvetica }
span.s2 { }
span.s3 { font: 14.0px Helvetica; color: #c35b50 }
span.s4 { color: #c35b50 }
span.s5 { color: #333333 }

Greenplum是为解决以上问题产生的可以支持scale-out横向扩展的基于数据库的MPP架构的分布式数据存储和并行计算的工具。

二、Greenplum架构

2.1 Greenplum MPP架构

在介绍Greenplum架构前,先来了解下背景里出现的MPP架构。所谓的MPP架构即Massively Parallel Processing大规模并行进程。其基本特征是由多个SMP服务器通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构,因而横向扩展能力好,性能随着硬件增加呈线性提升,理论上其扩展无限制。

可以看到,每个segment的硬件内容是独立的,在上层通过网络进行通信,Greenplum架构是典型的MPP架构。Master节点保存着global system catalog,并提供外部访问入口。业务数据都根据分布规则存放在Segment节点上。

2.2 Master高可用之 Master&Standby

由于Greenplum所有的并行任务都是在Segment数据节点上完成后,Master只负责生成和优化查询计划、派发任务、协调数据节点进行并行计算。Master节点并不会因为因为数据压力过大导致资源紧张成为瓶颈。

2.3 Segment高可用之镜像策略

在上一期安装初始化的时候有讲到ssh协议不通会导致初始化互相copy primary文件到别的镜像主机当做mirror文件失效报错,现在详细介绍下镜像策略。

Greenplum有两种镜像策略,分别为group(默认策略)和spread模式。其中group模式每个Host的镜像文件都放在下一个Host上,所有计算节点形成一个环。如下图

而spread模式是将每个Host的镜像依次分散到后续Host上,如下图

两者的差异在于可宕机数量以及宕机后仍处在正常状态服务器的压力。

以上两图为例,group模式下segment host1挂掉后,集群会使用segment host2镜像实例当做segment host1主实例的备选,使集群继续使用。即使在segment host1挂掉后,segment host3挂掉,segment host2和segment host4的主实例和镜像实例扔能支撑整个集群正常使用;

而在spread模式下segment host1挂掉后,其他三台任意出现故障导致服务不可用时,整个集群会有部分节点无法访问导致异常(例如segment host2和segment host3挂掉绿色不可用,segment host4挂掉蓝色不可用),spread对比group的优点在于,当只出现一台机器如segment host1挂掉时,spread能将segment host1的压力平分到segment host2和segment host3上,而group模式会将压力全都转移到segment host2上。

镜像模式可自动实现故障转移功能;如何选择镜像模式,需要根据实际情况来选择。

gpinitsystem_config初始化文件################################################
#### OPTIONAL MIRROR PARAMETERS
################################################

#### Base number by which mirror segment port numbers
#### are calculated.
MIRROR_PORT_BASE=53000

#### Base number by which primary file replication port
#### numbers are calculated.
REPLICATION_PORT_BASE=43000

#### Base number by which mirror file replication port
#### numbers are calculated.
MIRROR_REPLICATION_PORT_BASE=54000

#### File system location(s) where mirror segment data directories
#### will be created. The number of mirror locations must equal the
#### number of primary locations as specified in the
#### DATA_DIRECTORY parameter.
#declare -a MIRROR_DATA_DIRECTORY=(/data1/mirror /data1/mirror /data1/mirror /data2/mirror /data2/mirror /data2/mirror)
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2)

参考文档:

1、Greenplum架构 https://gpdb.docs.pivotal.io/5100/admin_guide/intro/arch_overview.html

2、镜像模式 https://gpdb.docs.pivotal.io/570/admin_guide/highavail/topics/g-overview-of-segment-mirroring.html

3、Master-Slave https://gpdb.docs.pivotal.io/5100/admin_guide/highavail/topics/g-overview-of-master-mirroring.html

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 14.0px "PingFang SC"; color: #333333; background-color: #ffffff }
span.s1 { }
span.s2 { font: 14.0px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 14.0px "PingFang SC"; color: #333333; background-color: #ffffff }
span.s1 { }
span.s2 { font: 14.0px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 14.0px "PingFang SC"; color: #333333; background-color: #ffffff }
span.s1 { }
span.s2 { font: 14.0px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #333333; background-color: #ffffff }
span.s1 { }
span.s2 { font: 14.0px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #333333; background-color: #ffffff }
span.s1 { }
span.s2 { font: 14.0px Helvetica }

原文地址:https://www.cnblogs.com/chou1214/p/9937800.html

时间: 2024-10-03 01:47:53

MPP架构海量数据分析仓库——Greenplum介绍的相关文章

MPP 架构数据库

Greenplum是一种基于postgresql的分布式数据库.其采用shared nothing架构(MPP),主机,操作系统,内存,存储都是自我控制的,不存在共享.也就是每个节点都是一个单独的数据库.节点之间的信息交互是通过 节点互联网络实现.通过将数据分布到多个节点上来实现规模数据的存储,通过并行查询处理来提高查询性能. 这个怎么感觉就像是把小数据库组织起来,联合成一个大型数据库.将数据分片,存储在每个节点上.每个节点仅查询自己的数据.所得到的结果再经过主节点处理得到最终结果.通过增加节点

MPP、SMP、NUMA概念介绍

一.MPP,SMP,NUMA概念介绍 1.1.       MPP架构介绍 MPP (Massively Parallel Processing),大规模并行处理系统,这样的系统是由许多松耦合的处理单元组成的,要注意的是这里指的是处理单元而不是处理器.每个单元内的CPU都有自己私有的资源,如总线,内存,硬盘等.在每个单元内都有操作系统和管理数据库的实例复本.这种结构最大的特点在于不共享资源. 1.2.    SMP架构介绍 SMP (Symmetric Multi Processing),对称多

gitub仓库主页介绍、用git管理本地仓库和github仓库

github仓库主页介绍 名词解释: 工作区: 添加.编辑.修改文件等动作 暂存区: 暂存已经修改的文件,最后统一提交到git中 git(仓库): 最终确定的文件保存到仓库,成为一个新的版本,并且对他人可见 一.本地Git初始化及仓库创建和操作 1.基本信息设置 1)设置用户名 git config --global user.name "Your Name" 2)设置用户名邮箱 git config --global user.email "[email protected

阿里P8架构师谈:消息中间件介绍、典型使用场景、以及使用原则

阿里P8架构师谈:消息中间件介绍.典型使用场景.以及使用原则大型分布式架构里一定会涉及到消息中间件,今天先谈谈消息中间件. 本文作者 陈睿 优知学院创始人 曾任职阿里巴巴高级软件工程师.百度研发经理.携程定制旅游CTO 常用的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ. 一.kafka1.不完全符合jms规范,注重吞吐量,类似udp 和 tcp 2.一般做大数据吞吐的管道 我们现在的用途就是负责在各个idc之间通信 3.量大对数据不是百

Java大型互联网架构-分布式系统服务框架Zookeeper介绍与原理实现

分布式系统服务框架Zookeeper介绍与原理实现 Zookeeper基本概念 zk角色 Zookeeper中的角色主要有以下三类,如下表所示: zookeeper角色 zk service网络结构 Zookeeper的工作集群可以简单分成两类,一个是Leader,唯一一个,其余的都是follower,如何确定Leader是通过内部选举确定的. zookeeper服务 Leader和各个follower是互相通信的,对于zk系统的数据都是保存在内存里面的,同样也会备份一份在磁盘上. 对于每个zk

应用程序框架实战十六:DDD分层架构之值对象(介绍篇)

前面介绍了DDD分层架构的实体,并完成了实体层超类型的开发,同时提供了验证方面的支持.本篇将介绍另一个重要的构造块——值对象,它是聚合中的主要成分. 如果说你已经在使用DDD分层架构,但你却从来没有使用过值对象,这毫不奇怪,因为多年来养成的数据建模思维已经牢牢把你禁锢,以致于你在使用面向对象方式进行开发时,还是以数据为中心. 当我们完成了基本的需求分析以后,如果说需要进行设计,那么你能想到的就是数据库表及表关系的设计,这就是数据建模.数据建模的主要依据是数据库范式设计,根据要求严格程度的递增分为

hive概念、架构、部署及原理介绍

转:https://www.aboutyun.com/thread-21544-1-1.html 问题导读: 1.Hive 是什么? 2.Hive 架构分哪几部分? 3.Hive 文件格式是怎样的? 一.Hive是什么? Hive 是基于 Hadoop 构建的一套数据仓库分析系统,它提供了丰富的 SQL 查询方式来分析存储在 Hadoop 分布式文件系统中的数据, 可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运

Redis Cluster架构和设计机制简单介绍

之前另一篇文章也介绍了 Redis Cluster (link,在文章的后半部分) 今天看到这一篇,简单说一下(http://hot66hot.iteye.com/blog/2050676) 作者的目标:Redis Cluster will support up to ~1000 nodes. 赞... 目前redis支持的cluster特性(已测试): 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot resharding:在线分片 4):集群管理:clust

Greenplum 介绍

数据库分两种类型: 1.OLTP:重吞吐和高并发:前台应用,面向客户. 主要特点: a.单次处理的数据量很小 b.对响应时间要求很高 c.用户数量庞大 2.OLAP:重计算,Greenplum属于OLAP:后台数据,面向业务管理人员. 主要特点: a.主要用于查询分析 b.复杂查询涉及的数据量庞大 c.用户数量少 Greenplum是一个关系型数据库集群,它实际上是由数个独立的数据库服 务 组 合 成 的 逻 辑 数 据 库 . 与 Oracle R A C 的 Shared-Everythin