MPP架构

article/2025/11/9 4:09:54

MPP架构

0x01 摘要

本文综合各家看法,再加上个人理解,介绍下对MPP架构的理解以及一些其他架构的对比。

0x02 MPP架构基本概念

2.1 什么是MPP

MPP架构
MPP,全称为Massively Parallel Processor,翻译过来就是大规模并行处理。MPP系统是由许多松耦合的处理单元组成的(要注意的是这里指的是处理单元而不是处理器)。每个处理单元内的CPU都有自己私有的资源,如总线,内存,硬盘等,且都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源(share-nothing)。
MPP架构图2

2.2 MPP架构特点

share nothing
MPP架构有如下特点:

  • Share Nothing、节点之间数据不共享,只有通过网络连接实现的协同
  • 每个节点有独立的存储和内存
  • 数据根据某种规则(如Hash)散布到各个节点
  • 计算任务也是会发布到各个节点并行执行,最后再将结果聚合到整体返回
  • 用户使用时会看做整体
  • MPP数据库(如GreePlum)往往优先考虑C一致性,然后是A可用性,最后考虑P分区容忍
  • MPP架构目前被并行数据库广泛采用,一般通过scan、sort和merge等操作符实时返回查询结果

2.3 MPP架构劣势

  • 很难高可用 -> 影响可用性和可靠性
    因为数据按某种规则如HASH已经散布到了各个节点上。
  • 节点数=任务并行数 -> 影响扩展性
    一个作业提交时,每个节点都要执行相同任务。而不像MapReduce那样做了根据实际开销进行任务拆分后散发到有资源的几个节点上。这一点大大影响了MPP架构应用的可扩展性。
  • 每个客户端同时连接所有节点通信 -> 影响网络
    MPP架构每个节点独立,所以客户端往往需要连接所有节点进行通信,这使得网络也成为瓶颈。
  • 分区容错性差
    前面提到过MPP主要考虑CA,最次才是P。那么一旦扩展节点太多后,元数据管理十分困难。

2.4 MPP 适用场景

集群规模100以内、并发小(50以下)

MPP架构目前被并行数据库广泛采用,一般通过scansortmerge等操作符实时返回查询结果

0x03 典型的MPP架构应用

MPP架构3

  • GreenPlum
    Master-Slave架构的MPP
    可以参考这篇文章:大数据系统的另一种解决方案-采用MPP架构的GreenPlum数据库
  • HP Vertica
    无共享架构的MPP,特点如下
    • 无特殊节点
    • 所有节点对等
    • 可通过任意节点查询或加载数据
    • 实时加载与查询同步进行
  • Impala
    Impala架构

0x04 其他架构

4.1 SMP

SMP

4.1.1 什么是SMP

SMP全称为Symmetric Multi Processing,翻译过来是对称多处理。其最大的特点是CPU共享所有资源,如内存、IO等。操作系统只有一个,他管理着一个队列,每个处理器依次处理队列中的进程。如果两个处理器同时请求访问一个资源(例如同一段内存地址),由硬件、软件的锁机制去解决资源争用问题。

所谓对称多处理器结构,是指服务器中多个 CPU 对称工作,无主次或从属关系。各 CPU 共享相同的物理内存,每个 CPU 访问内存中的任何地址所需时间是相同的,因此 SMP 也被称为一致存储器访问结构 (UMA : Uniform Memory Access) 。对 SMP 服务器进行扩展的方式包括增加内存、使用更快的 CPU 、增加 CPU 、扩充 I/O( 槽口数与总线数 ) 以及添加更多的外部设备 ( 通常是磁盘存储 ) 。

4.1.2 SMP的问题

SMP 服务器的主要特征是共享,系统中所有资源 (CPU 、内存、 I/O 等 ) 都是共享的。也正是由于这种特征,导致了 SMP 服务器的主要问题,那就是它的扩展能力非常有限。

对于 SMP 服务器而言,每一个共享的环节都可能造成 SMP 服务器扩展时的瓶颈,而最受限制的则是内存。由于每个 CPU 必须通过相同的内存总线访问相同的内存资源,因此随着 CPU 数量的增加,内存访问冲突将迅速增加,最终会造成 CPU 资源的浪费,使 CPU 性能的有效性大大降低。

实验证明, SMP 服务器 CPU 利用率最好的情况是 2 至 4 个 CPU 。

SMP-CPU

4.1.3 适用场景

当节点之间通信交互较少时,MPP更适用。集中式数据库SMP更适用。

MPP架构服务器就是由多个SMP服务器通过若干节点组成,通过网络协同工作。

4.2 NUMA

4.2.1 什么是NUMA

NUMA全称为Non-Uniform Memory Access

由于SMP扩展能力差,而 NUMA可以有效地扩展从而构建大型系统。利用 NUMA ,可以把几十个 CPU( 甚至上百个 CPU) 组合在一个服务器内。其 CPU 模块结构如图所示:
NUMA

4.2.2 NUMA特点

NUMA 服务器的基本特征:

  • 具有多个 CPU 模块
  • 每个 CPU 模块又是由多个 CPU( 如 4 个 ) 组成,并且具有独立的本地内存、 I/O slot等
  • 节点之间通过互联模块 ( 如称为 Crossbar Switch) 进行通信交互,每个 CPU 可以访问整个系统的内存 ( NUMA 与 MPP 的重要差别,因为MPP中CPU不可访问其他节点内存 )

显然,访问本地内存的速度将远远高于访问其他节点上的内存的速度,这也是非一致存储访问 NUMA 的由来。由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同 CPU 模块之间的信息交互。

利用 NUMA 技术,可以较好地解决原来 SMP 系统的扩展问题,在一个物理节点内可以支持上百个 CPU

4.2.3 NUMA的问题

但 NUMA 技术同样有一定缺陷,由于访问其他节点上的内存的延时远远超过本地内存,因此当 CPU 数量增加时,系统性能无法线性增加。

如 HP 公司发布 Superdome 服务器时,曾公布了它与 HP 其它 UNIX 服务器的相对性能值,结果发现, 64 路 CPU 的 Superdome (NUMA 结构 ) 的相对性能值是 20 ,而 8 路 N4000( 共享的 SMP 结构 ) 的相对性能值是 6.3 。从这个结果可以看到, 8 倍数量的 CPU 换来的只是 3 倍性能的提升。

4.2.4 NUMA例子

比较典型的 NUMA 服务器的例子包括 HP 的 Superdome 、 SUN15K 、 IBMp690 等。

4.2.5 NUMA和MPP比较

NUMA和MPP比较

4.2.5.1 相同

  • 它们都由多个节点组成,
  • 每个节点都具有自己的 CPU 、内存、 I/O ,
  • 节点之间都可以通过节点互联机制进行信息交互。

4.2.5.2 不同

  • 节点互联机制不同。

    1. NUMA 的节点互联机制是在同一个物理服务器内部实现的。当某个 CPU 需要进行同模块其他节点内存访问时,它必须等待,这也是 NUMA 服务器无法实现 CPU 增加时性能线性扩展的主要原因。
    2. 而 MPP 的节点互联机制是在不同的 SMP 服务器外部通过 I/O 实现的,每个节点只访问本地内存和存储,节点之间的信息交互与节点本身的处理是并行进行的。因此 MPP 在增加节点时性能基本上可以实现线性扩展。
  • 内存访问机制不同。

    1. 在 NUMA 服务器内部,任何一个 CPU 可以访问整个系统的内存,但非本节点内存访问的性能远远低于本节点内存访问,因此在开发应用程序时应该尽量非本节点内存访问。
    2. 在 MPP 服务器中,每个节点只访问本地内存,不存在远地内存访问的问题。

4.2.6 适用场景

NUMA不适合大量数据需要处理且有交互的场景。

4.3 Hadoop

  • 数据存储sharding技术不同
    MPP一般用hash切分,很难resharding导致扩展困难,采用这种方式切分的一般上百台性能达到平静,每次增加节点需要reshard;Hadoop用元数据服务(NameNode)统一管理,数据的分区逻辑和分区的存储逻辑分离了,数据的写入和读取都是通过查询元数据服务得到数据分区的具体节点位置,也会受限于元数据服务能力,一般上限10K。
  • 内存管理
    MPP内存管理精细,就像每个节点有个小数据库,数据量小时延时低,但数据量太大吞吐就达到瓶颈了;Hive内存管理粗放,scan+batch所以吞吐量大,但延时高
  • 数据管理理念不同(以下转自为什么说HADOOP扩展性优于MPP架构的关系型数据库?,作者 王涛)
    在这里插入图片描述
  • 解决data locality时机不同
    • hadoop为计算时,MPP为数据加载时,所以HADOOP更易扩展
  • 事务和数据模型处理不同(以下转自为什么说HADOOP扩展性优于MPP架构的关系型数据库?,作者:黄东旭)
    MPP数据库属于关系型数据库,一个完整的关系模型分散到多台物理节点上去做管理,因此对于DML操作、强事务型操作,MPP数据库压力很大,规模上来以后,DML操作的性能基本无法接受,而对于DQL操作,就没有太大影响,因为数据相对不动,因此无修改数据,对于数据模型的维护来讲,成本非常小。所以说,对于MPP分析类的数据库(只查询),扩展性影响不大。而相反,事务型MPP数据库,扩展性就很差了。Hadoop是非关系型数据库,不涉及太多的数据模型维护工作,因此扩展性很高。
  • failover机制

MR将任务合理拆分成小任务,根据计算节点资源情况下发任务执行。
HDFS将数据拆分为Block为单位存储到多个DataNode,且有N个副本,NameNode知道所有Block所在位置。

  • 当数据基本是结构化且需要使用MPP数据库的RDBMS特性时可考虑使用MPP数据库;MPP更适合多维度数据分析、数据集市等
  • 而非结构化和半结构化数据或数据量巨大需要海量扩展节点或是需要使用一些基于HDFS的一些技术栈的时候就用Hadoop这套。

综合Hadoop MPPDB和传统RDBMS的对比如下:
HADOOP MPP RDBMS

由上述对比可预见未来大数据存储与处理趋势:

  • MPPDB+Hadoop混搭使用,用MPP处理PB级别的、高质量的结构化数据,同时为应用提供丰富的SQL和事物支持能力;
  • 用Hadoop实现半结构化、非结构化数据处理。
  • 这样可以同时满足结构化、半结构化和非结构化数据的高效处理需求。
    混搭架构大数据

4.4 集群和MPP区别(未完成)

  • 集群中,每个机器节点都拥有独立内存、内盘等,内部使用网络来达到内部互联的目的。集群由程序员决定怎么分配工作。
  • 简单理解MPP即这样的系统由多个物理上独立的节点通过高速网络互联组成的一个相互协同工作的大规模系统,从用户角度来看,用户的任务将会被透明的分割到多个节点计算,由协调节点聚合并返回结果。

0xFF 参考文档

MPP(大规模并行处理)简介

MPP

Hadoop与MPP解析

SMP、NUMA、MPP体系结构介绍

MPP(大规模并行处理)简介

What is the difference between a Cluster and MPP supercomputer architecture?

为什么说HADOOP扩展性优于MPP架构的关系型数据库?


http://chatgpt.dhexx.cn/article/CdCXKTXu.shtml

相关文章

MPP(大规模并行处理)简介

1、 什么是MPP? MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节…

基于WiFi的Android局域网即时通讯软件

基于WiFi的Android局域网即时通讯软件,通过自建WiFi热点的方式与其他移动设备进行通信,实现了文字聊天、语音留言、文件互传等功能,满足基本的日常使用需求。 下载地址:http://www.devstore.cn/code/info/670.html 运行截图&…

基于WiFi的Android局域网即时通讯软件——Android源码

基于WiFi的Android局域网即时通讯软件 基于WiFi的Android局域网即时通讯软件,通过自建WiFi热点的方式与其他移动设备进行通信,实现了文字聊天、语音留言、文件互传等功能,满足基本的日常使用需求。 下载地址:http://www.devstore.…

局域网即时通讯软件_企业即时通讯软件需要符合哪些要求?

随着网络信息的发展,市面上出现了大量的企业即时通讯软件,旨在帮助企业打通信息化的道路。很多企业不知道该如何正确选择一款符合要求的通讯软件,选择的标准应该从哪些方面入手。下面企达小编为大家详细介绍一下。 1、数据安全性 企业的商业部…

局域网即时通讯软件_远程桌面监控软件好不好用?哪个好?

远程桌面监控软件好不好用?哪个好?有时候经常需要进行远程协助,大家第一时间想到的就是QQ远程协助了,没错,QQ可以,但是 QQ远程协助很卡顿,响应不及时。电脑自带应用不会设置,这可怎么办?超级眼远程监控软…

局域网即时通讯软件_做企业即时通讯软件,我们是认真的

协同办公无非分为外部沟通和内部沟通两种局势,内部沟通则是企业协同工作的一部分,注重效率;外部沟通为企业社交,注重便捷,从而实现内部沟通的高效性,是协同办公工具所要解决的基础性问题。真心特别羡慕那些…

局域网即时通信软件都有哪些?要如何选择?

近些年来,由于企业内部敏感信息通过即时通信软件和互联网泄露的事件频发,许多企业对于内部信息安全保护越来越重视。除了使用局域网环境办公以外,还会采用局域网即时通信软件来作为内部沟通工具,降低信息泄露的风险。那么局域网即…

c语言即时通讯软件源码,即时通讯软件源码-基于c语言即时通讯软件代码实现

我不知道哪种语言无关紧要。开源,我不知道该用什么。 即时通讯软件源代码为JAVA语言 对于即时通讯软件源代码最好是用C语言编写的,想学一下,感谢您即时通讯软件有什么。 includewinscock2、h# includewinscock2、h# includesting。h# includewindows。h# includePROCESS。h#…

基于Qt的局域网即时通讯软件

以前写的一篇日志,不小心删了,竟然没得恢复。万恶的CSDN,重排版。 第一个写的软件。基本上还是很粗糙,而且代码也大多不是自己写的,不过也着实让我过了一把瘾。接下来简单地讲讲整个过程和学到的东西吧。 首先是软件的…

企业的财务部门为什么要用内网即时通讯软件

1、内网即时通讯可以提高内部沟通效率 财务部是企业中一个非常重要的部门,与其他部门进行沟通协调的频率非常高。使用内网即时通讯可以快速方便地与其他部门沟通,帮助快速解决问题。 2、内网即时通讯更加安全 财务部的工作涉及到财务数据,需…

Python 局域网即时通讯工具

刚刚接触Python, 小白一个 为了学习Python, 所以试着写了一个局域网聊天的小工具 如果代码有什么问题,希望大家能给予指正,非常感谢 源代码连接(GitHub)已生成EXE文件,可在Windows下直接运行。Python 版本 3.7.3GUI编程,需要安装…

为什么企业选择局域网即时通讯软件?局域网即时通讯软件哪家好?

在当今互联网普及的时代,企业内部的沟通对企业管理有着非常重要的意义,即时通讯软件已成为企业工作中广泛采用的沟通工具。 然而,随着企业内部敏感信息通过互联网泄露的频繁发生,例如在工作期间,企业员工自发地频繁使…

企业局域网即时通讯软件存在是必然趋势

自从21世纪以来,经济全球化趋势越来越明显,尤其是发展中国家。我国经济发展更是迅猛,各行各业之间的竞争也是日益激烈。 如果不想被飞速发展的社会淘汰,现代企业就必须以最快的速度应对复杂又变化莫测的市场环境。企业内部的沟通对…

企业选择局域网即时通讯软件的必要性是什么?

在互联网时代,很多企业不断进行数字化升级,想要摆脱沟通麻烦、流程复杂、资源利用率低的传统办公模式,推进线上办公或远程办公信息化建设,而这就离不开我们常说的“即时通讯软件”来进行连接。 那什么是即使通讯软件呢&#xff1f…

局域网即时通讯软件可以保护数据安全吗?

根据调查显示,出于安全考虑,现在很多企业已禁止使用个人即时通讯软件。因为个人通讯软件缺乏完善安全机制,容易出现内部资料泄漏问题。只有安全的通讯软件—局域网即时通讯软件才能提高企业工作效率,增强员工协同办公能力&#xf…

局域网即时通讯软件_什么样的企业即时通讯软件好用?应该如何选择?

企业即时通讯是目前最为流行的通讯方式,市场上的即时通讯软件层出不穷,种类繁多,我们一时也不知道怎么选择。为了方便企业更好的选择即时通讯软件,我对目前市面上的一些即时通讯软件进行了分类和总结,希望对大家有帮助…

局域网即时通讯软件应该怎么选择

现在,国内外做即时通讯软件的公司很多,产品也是多种多样。在国内,数得上名字的有腾讯QQ,微信,新浪UC,网易泡泡等等,国外比较排的上名的有著名的MSN以及跨平台Gaim等。这几种即时通讯软件都是需要…

局域网即时通讯软件怎么部署

如今,国家经济体系正逐渐完善中,科技领域也处于高速发展阶段,各企业都在加快内部工作节奏,以求获取更好的发展机会。以前企业内部通讯系统往往是电话、电子邮件等传统方式,这些方式往往需要等待很长时间才能得到回复&a…

如何部署局域网即时通讯软件

如今,国家经济体系正逐渐完善中,科技领域也处于高速发展阶段,各企业都在加快内部工作节奏,以求获取更好的发展机会。以前企业内部通讯系统往往是电话、电子邮件等传统方式,这些方式往往需要等待很长时间才能得到回复&a…

内网沟通软件都有哪些?

近些年来,互联网的迅速发展,给人们的生活和工作带来了许多便利性,但却给企业带来了一个问题,信息泄露。由于企业内部敏感信息通过互联网的泄露的事件频发,不少企业只能转用内网环境办公,企业内部原本的互联…