MPP架构,SMP架构,NUWA架构


MPP架构


随着分布式、并行化技术成熟应用,MPP引擎逐渐表现出强大的高吞吐、低时延计算能力,有很多采用MPP架构的引擎都能达到“亿级秒开

MPP是由多台SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。每个节点只访问自己的资源,所以是一种完全无共享(Share Nothing)结构。MPP结构扩展能力最强,理论可以无限扩展。由于MPP是多台SPM服务器连接的,每个节点的CPU不能访问另一个节点内存,所以也不存在异地访问的问题

每个节点内的CPU不能访问另一个节点的内存,节点之间的信息交互是通过节点互联网络实现的,这个过程称为数据重分配。

但是MPP服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。目前,一些基于MPP技术的服务器往往通过系统级软件(如数据库)来屏蔽这种复杂性。举个例子,Teradata就是基于MPP技术的一个关系数据库软件(这是最早采用MPP架构的数据库),基于此数据库来开发应用时,不管后台服务器由多少节点组成,开发人员面对的都是同一个数据库系统,而无需考虑如何调度其中某几个节点的负载。

MPP架构,SMP架构,NUWA架构_第1张图片


SMP


SMP即对称多处理器结构,就是指服务器的多个CPU对称工作,无主次或从属关系。SMP服务器的主要特征是共享,系统中的所有资源(如CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,即扩展能力非常有限。


NUMA


即非一致存储访问结构。这种结构就是为了解决SMP扩展能力不足的问题,利用NUMA技术,可以把几十个CPU组合在一台服务器内。NUMA的基本特征是拥有多个CPU模块,节点之间可以通过互联模块进行连接和信息交互,所以,每个CPU可以访问整个系统的内存(这是与MPP系统的重要区别)。但是访问的速度是不一样的,因为CPU访问本地内存的速度远远高于系统内其他节点的内存速度,这也是非一致存储访问NUMA的由来。

这种结构也有一定的缺陷,由于访问异地内存的时延远远超过访问本地内存,因此,当CPU数量增加时,系统性能无法线性增加。


批处理架构和MPP架构


批处理架构和MPP处理架构的相同点是他们都用的分布式处理方式,即当有任务需要执行的时候,需要并行的分配任务到多个节点,然后根据每个节点的计算结果汇总后返回给用户
不同点是对于批处理架构(Hadoop系)来说,每个子任务都是随机分配到Executor的,但是对于MPP架构来讲,每个处理数据的task被绑定到持有该数据切片的指定Executor上。

批处理的优势:
对于批处理架构来说,如果某个Executor执行过慢,那么这个Executor会慢慢分配到更少的task执行,批处理架构有个推测执行策略,推测出某个Executor执行过慢或者有故障,则在接下来分配task时就会较少的分配给它或者直接不分配,这样就不会因为某个节点出现问题而导致集群的性能受限。

批处理的缺陷:
任何事情都是有代价的,对于批处理而言,它的优势也造成了它的缺点,会将中间结果写入到磁盘中,这严重限制了处理数据的性能

MPP的优势:
MPP架构不需要将中间数据写入磁盘,因为一个单一的Executor只处理一个单一的task,因此可以简单直接将数据stream到下一个执行阶段。这个过程称为pipelining,它提供了很大的性能提升。

MPP的缺陷:
对于MPP架构来说,因为task和Executor是绑定的**,如果某个Executor执行过慢或故障,将会导致整个集群的性能就会受限于这个故障节点的执行速度(所谓木桶的短板效应)**,所以MPP架构的最大缺陷就是——短板效应。另一点,集群中的节点越多,则某个节点出现问题的概率越大,而一旦有节点出现问题,对于MPP架构来说,将导致整个集群性能受限,所以一般实际生产中MPP架构的集群节点不易过多。

MPP架构,SMP架构,NUWA架构_第2张图片

你可能感兴趣的:(大数据,java,hadoop,big,data)