2024年4月16日发(作者:)
MPP大规模并行处理架构详解
面试官:说下你知道的MPP架构的计算引擎?
这个问题不少小伙伴在面试时都遇到过,因为对MPP这个概念了解较少,不少人都卡壳了,但是我们常
用的大数据计算引擎有很多都是MPP架构的,像我们熟悉的Impala、ClickHouse、Druid、Doris等都是
MPP架构。
采用MPP架构的很多OLAP引擎号称:亿级秒开。
本文分为三部分讲解,第一部分详解MPP架构,第二部分剖析MPP架构与批处理架构的异同点,第三
部分是采用MPP架构的OLAP引擎介绍。
一、MPP架构
MPP是系统架构角度的一种服务器分类方法。
目前商用的服务器分类大体有三种:
1. SMP(对称多处理器结构)
2. NUMA(非一致存储访问结构)
3. MPP(大规模并行处理结构)
我们今天的主角是 MPP,因为随着分布式、并行化技术成熟应用,MPP引擎逐渐表现出强大的高吞吐、
低时延计算能力,有很多采用MPP架构的引擎都能达到“亿级秒开”。
先了解下这三种结构:
1. SMP
即对称多处理器结构,就是指服务器的多个CPU对称工作,无主次或从属关系。SMP服务器的主要特
征是共享,系统中的所有资源(如CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服
务器的主要问题,即扩展能力非常有限。
2. NUMA
即非一致存储访问结构。这种结构就是为了解决SMP扩展能力不足的问题,利用NUMA技术,可以把
几十个CPU组合在一台服务器内。NUMA的基本特征是拥有多个CPU模块,节点之间可以通过互联模块进
行连接和信息交互,所以,每个CPU可以访问整个系统的内存(这是与MPP系统的重要区别)。但是访问
的速度是不一样的,因为CPU访问本地内存的速度远远高于系统内其他节点的内存速度,这也是非一致存储
访问NUMA的由来。
这种结构也有一定的缺陷,由于访问异地内存的时延远远超过访问本地内存,因此,当CPU数量增加时,
系统性能无法线性增加。
3. MPP
即大规模并行处理结构。MPP的系统扩展和NUMA不同,MPP是由多台SMP服务器通过一定的节点
互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。每个节点只访问自
己的资源,所以是一种完全无共享(Share Nothing)结构。
MPP结构扩展能力最强,理论可以无限扩展。由于MPP是多台SPM服务器连接的,每个节点的CPU
不能访问另一个节点内存,所以也不存在异地访问的问题。


发布评论