大数据系统架构-MPP数据库架构

当前的大数据系统架构主要有两种:一种是MPP数据库架构,另一种就是Hadoop体系的分层架构。这两种架构各有优势和适合的场景。另外随着光纤网络通信技术的发展,大数据系统架构正在向着存储与计算分离的架构和云化架构方向发展。
Hadoop体系的分层架构解读见:大数据系统架构——Hadoop体系

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

01 并行硬件架构的发展

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

  • SMP(Symmetric Multi Processing,对称多处理器)架构:这里的“对称”是指所有处理器之间是平等的,并且共享包括物理内存在内的所有资源,处理器访问不同资源的能力也是一致的,因此SMP架构也被称为(Uniform Memory Access,一致存储器访问)架构。
  • NUMA(Non-Uniform Memory Access,非一致存储访问)架构:NUMA架构服务器内有多个处理模块,每个模块多个CPU和本地内存,但每个CPU也可以访问整个系统的内存,当然访问本模块的内存要比访问其他模块内存的速度快,这也是非一致存储访问架构名称的由来。
  • MPP(Massively Parallel Processing,大规模并行处理)架构:MPP架构是将多个处理节点通过网络连接起来,每个节点是一台独立的机器,节点内的处理单元独占自己的资源,包括内存、硬盘。IO等,也就是每个节点内的CPU不能访问另一个节点的内存(这也是MPP和NUMA的区别),MPP架构服务器需要通过软件实现复杂的调度机制以及并行处理。

大数据系统架构-MPP数据库架构_第1张图片
这三种技术架构的发展是一个并行能力、扩展能力逐渐提高的过程,也是耦合度逐渐降低的过程。SPM的主要问题是扩展能力十分有限,随着CPU数量的增加,内存访问冲突出现的概率会增加。实验表明SMP架构服务器CPU利用率最好的情况是服务器内有2-4个CPU。NUMA架构则可以在一个物理服务器内最多集成上百个CPU,但是由于访问非本节点内存的延时较高,因此在CPU达到一定数量后,无法再通过增加CPU实现系统性能的线性提高。其中,MPP架构的扩展性最好,理论上对节点数量没有限制,可以包含几百个节点。

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

数据库厂商推出了很多软硬件一体的数据库设备产品,此类产品是由一台或多台主机组成的继承设备,将服务器、存储、操作系统和数据库软件集成在一起,可以开箱即用。国内一般将此类产品成为数据库一体机(Database Machine)
为了提高性能,此类产品都会采用并行硬件架构。从资源共享角度来说,这类产品的数据库架构也可分为3类:

  • 完全透明共享(Sharing Everything)系统:一般是针对单个主机,采用SMP或者NUMA硬件架构,是一个高性能的单台服务器,此类产品可以提供较高的事务处理能力。
  • 完全不共享(Sharing Nothing)系统:由多个主机组成,采用MPP硬件架构,各节点都有自己私有的CPU、内存、硬盘等,不存在共享资源,每个节点是一台SMP服务器,在每个节点内都有操作系统和管理数据库的实例副本,管理本节点的资源,节点间通过网络通信,能够处理大数据量,适合复杂的数据综合分析,对事务支持较差。
  • 共享磁盘(Share Disk)系统。由多个主机组成,也属于MPP硬件架构,各节点使用自己私有的CPU和内存。共享磁盘系统可实现高可用性,即使一个节点故障,也可以通过其他节点访问所有数据,但由于节点之间不共享内存,需要一个锁管理器来维护节点缓存之间的一致性,会带来额外的开销。
    这三类产品的功能特点对比如下:
    大数据系统架构-MPP数据库架构_第2张图片

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

基于MPP架构的数据库软件系统,一版成为MPP数据库,他是运行在由普通商用服务器组成的服务器集群上,服务器(节点)之间通过网络连接,每个节点都是独立的、自我管理的,且计算节点的功能是相同的。也就是说,每个节点是一台相对独立的数据库服务器,节点上运行着一个单机操作系统和数据库管理系统,用于管理本节点上的资源和数据,即节点资源私有。
以基于PostgreSQL的MPP数据库系统Greenplum为例,每个节点上实际运行着一个单机版的PostgreSQL数据库实例。
如果是主从模式,由管理节点接收客户端请求并将任务分解分派到多个节点上,在每个节点上完成数据读取和计算后,再将各部分的中间结果汇总到管理节点一起计算,并将最终结果返回到客户端。如果是环形模式,则每个节点都可以接收到客户端的请求,并向其他节点请求数据,待完成汇总计算后将结果返回客户端。
MPP数据库架构(主从模式或环形模式)如下
大数据系统架构-MPP数据库架构_第3张图片
从硬件架构上来说,MPP数据库与Shared Nothing+MPP的数据库一体机是一样的,区别是服务器硬件选择不限定厂商,集群弹性伸缩更灵活,成本更低。在大多数情况下,所有节点都使用相同的硬件和相同的操作系统。

你可能感兴趣的:(大数据,大数据,系统架构,数据库架构)