终于有人把MPP大数据系统架构讲明白了

大数据 新闻
从资源管理角度来看,当前的大数据系统架构主要有两种:一种是MPP数据库架构,另一种是Hadoop体系的分层架构。这两种架构各有优势和相应的适用场景。另外,随着光纤网络通信技术的发展,大数据系统架构正在向存储与计算分离的架构和云化架构方发展。

​本文首先回顾并行硬件架构的发展,并进一步介绍基于并行硬件架构的数据库一体机系统与基于MPP架构的数据库软件系统。数据库一体机系统在银行等大型企业中采用广泛,一体机的优点是开箱即用、功能丰富、稳定、售后服务好,缺点是价格昂贵、扩展不灵活。基于普通服务器集群加MPP数据库软件构建的数据库系统,优点是硬件成本低、水平扩展容易、易于进行海量数据处理、吞吐量高,缺点是仅适合用于数据分析。

01并行硬件架构的发展

为了提高计算机系统的处理能力,在处理单元(CPU)性能确定的情况下,就需要增加处理单元的数量,此时从计算单元(CPU)对资源(特别是内存)访问的角度来看,并行硬件架构分为三种,详细说明如下。

SMP(Symmetric Multi Processing,对称多处理器)架构。这里的“对称”是指所有处理器之间是平等的,并且共享包括物理内存在内的所有资源,处理器访问不同资源的能力(速度)是一致的,每个处理器访问内存中的任何地址所需的时间是相同的,因此SMP架构也被称为UMA(Uniform Memory Access,一致存储器访问)架构。

  • NUMA(Non-Uniform Memory Access,非一致存储访问)架构。NUMA架构服务器内部有多个处理模块(节点),每个模块有多个CPU和本地内存,但每个CPU也可以访问整个系统的内存,当然访问本模块的内存要比访问其他模块内存的速度快,这也是非一致存储访问架构名称的由来。

  • MPP(Massively Parallel Processing,大规模并行处理)架构。MPP架构是将多个处理节点通过网络连接起来,每个节点是一台独立的机器,节点内的处理单元独占自己的资源,包括内存、硬盘、IO等,也就是每个节点内的CPU不能访问另一个节点的内存(这是MPP与NUMA的主要区别),MPP架构服务器需要通过软件实现复杂的调度机制以及并行处理过程。

这三种技术架构的发展是一个并行能力、扩展能力逐渐提高的过程,也是耦合度逐渐减低的过程,它们的区别如图1所示。SMP架构服务器的主要问题是扩展能力十分有限,随着CPU数量的增加,内存访问冲突出现的概率会快速增加。实验表明,SMP架构服务器CPU利用率最好的情况是服务器内有2~4个CPU。NUMA架构可以在一个物理服务器内最多集成上百个CPU,但由于访问非本节点内存的延时远远超过本地内存,因此在CPU达到一定数量后,无法再通过增加CPU实现系统性能的线性提高。MPP架构的扩展性最好,理论上对节点数量没有什么限制,可以包含几百个节点。

图片

▲图1 并行硬件架构对比

02基于并行硬件架构的数据库设备

数据库厂商推出了很多软硬件一体的数据库设备产品,此类产品是由一台或多台主机组成的集成设备,将服务器、存储、操作系统和数据库软件集成在一起,可以实现开箱即用。国内一般将此类产品称为数据库一体机(Database Machine)。

为了提高性能,此类产品都会采用并行硬件架构。从资源共享角度来看,这类产品的数据库架构可分成三类,详细说明如下。

  • 完全透明共享(Shared Everthing)系统。一般是针对单个主机,采用SMP或者NUMA硬件架构,是一个高性能的单台服务器,此类产品可以提供较高的事务处理能力。

  • 完全不共享(Shared Nothing)系统。由多个主机组成,采用MPP硬件架构,各节点都有自己私有的CPU、内存、硬盘等,不存在共享资源,每个节点是一台SMP服务器,在每个节点内都有操作系统和管理数据库的实例副本,管理本节点的资源,节点间通过网络通信,能够处理的数据量更大,适合复杂的数据综合分析,对事务支持较差。

  • 共享磁盘(Shared Disk)系统。由多个主机组成,也属于MPP硬件架构,各节点使用自己私有的CPU和内存。共享磁盘系统可实现高可用性,即使一个节点故障,也可以通过其他节点访问所有数据,但由于节点之间不共享内存,需要一个锁管理器来维护节点缓存之间的一致性,会带来额外的开销。

这三类产品的功能特点对比如下表所示。

▼表1 三类产品的功能特点对比

图片

03基于MPP架构的数据库软件系统

基于MPP架构的数据库软件系统,一般简称为MPP数据库,它是运行在由普通商用服务器组成的服务器集群上,服务器(节点)之间通过网络连接,每一个节点都是独立的、自我管理的,且计算节点的功能是相同的。也就是说,每个节点是一台相对独立的数据库服务器,节点上运行着一个单机操作系统和数据管理系统,用于管理本节点上的资源与数据,即节点资源私有。以基于PostgreSQL的MPP数据库系统Greenplum为例,每个节点上实际运行着一个单机版的PostgreSQL数据库实例。如果是主从模式,由管理节点接收客户端请求并将任务分解分派到多个节点上,在每个节点上完成数据读取和计算后,再将各部分的中间结果汇总到管理节点一起计算,得到最终的结果并返回客户端。如果是环形模式,则每个节点都可以接收客户端的请求,并向其他节点请求数据,待完成汇总计算后将结果返回客户端。MPP数据库架构(主从模式或环形模式)如图2所示。

图片

▲ 图5-2 MPP数据库架构(主从模式或环形模式)

从硬件架构上来说,MPP数据库与Shared Nothing+MPP的数据库一体机是一样的,区别是服务器硬件选择不限定厂商,集群弹性伸缩更灵活,成本更低。在大多数情况下,所有节点都使用相同的硬件和相同的操作系统。​

责任编辑:张燕妮 来源: 数仓宝贝库
相关推荐

2022-06-26 18:52:02

Hadoop大数据系统

2020-11-30 08:34:44

大数据数据分析技术

2022-04-22 11:26:55

数据管理架构

2021-06-29 11:21:41

数据安全网络安全黑客

2022-04-12 18:29:41

元数据系统架构

2022-01-05 18:27:44

数据挖掘工具

2022-04-27 18:25:02

数据采集维度

2021-12-03 18:25:56

数据指标本质

2022-10-14 18:22:18

KafkaHiveZooKeeper

2021-06-13 12:03:46

SaaS软件即服务

2021-10-09 00:02:04

DevOps敏捷开发

2022-03-27 20:32:28

Knative容器事件模型

2020-08-17 08:17:00

大数据人工智能技术

2022-03-15 17:12:03

大数据机器学习人工智能

2021-10-20 18:49:29

架构分布式系统

2021-10-07 20:24:16

AIBI大数据

2021-12-07 18:24:26

数据安全

2022-05-01 22:09:27

数据模型大数据

2020-10-29 06:09:37

数据中台数据大数据

2022-05-09 20:23:51

数据采集
点赞
收藏

51CTO技术栈公众号