MPP架构和分布式架构

1.MPP(Massively Parallel Processing)架构
传统数仓架构,将单机数据库节点组成集群,每个节点拥有独立的磁盘和内存系统,不能相互访问内存,通过专用网络或商业通用网络连接彼此、协同计算
,从而提供整体数据处理服务。MPP架构优先考虑一致性(Consistency),其次考虑可用性(Availability),同时尽量做到分区容错性(Partition Tolerance)。
(1).存储位置不透明,通过Hash确定数据所在的物理节点,查询任务在所有节点均会执行,如果一个节点性能低,将影响整体,增加了查询的延迟。分布式结构将取消该节点的查询,在其他节点执行.
(2).并行计算时,单节点瓶颈会成为整个系统的短板,容错性差
(3).分布式事务的实现会导致扩展性降低
MMP架构也具有这些有点
高性能(将数据分散到多个节点上,每个节点拥有独立的处理能力,能够同时处理多个任务)
横向扩展(传统单机数据库逐渐无法满足业务需求,MPP架构可以通过增加计算节点、CPU和存储等硬件资源来实现横向扩展)
精细管理(MPP架构需要管理分散在多个节点上的数据,因此需要精细的管理和调度机制)
高可用性(当某个节点发生故障时,系统能够自动切换到其他节点)

2.分布式架构
大数据中较为常见的技术架构,也成为Hadoop架构/批处理架构,分布式系统通常会优先考虑分区容错性(Partition Tolerance),
其次考虑可用性(Availability),尽量做到一致性(Consistency)。各节点实现场地自治(单独运行局部应用),数据在集群中全局透明共享,
且各节点之间都通过局域网或广域网相连,可以相互访问内存,但节点之间通信的开销较大,因此在运算时需要尽量减少数据移动。

MPP架构相比,分布式架构具有以下优点
(1). 高吞吐量:分布式架构能够将计算任务分散到多个节点上并行执行,因此具有较高的处理速度和吞吐量。随着集群规模的增大,处理速度将会加快,能够扩展到百万亿级别的数据量。
(2). 公共存储:分布式架构通常使用公共存储系统如HDFS(Hadoop分布式文件系统)来管理数据,这种存储方式适合存储大规模的异构数据,且具有很好的扩展性和容错性。
(3). 灵活性:分布式架构具有很好的灵活性,能够容易地增加或减少集群节点,适应不同的业务需求。同时也支持多种编程语言和开源框架,如Hadoop、Spark、Flink等。

3.MPP+分布式架构
阿里云StarRocks
采用分布式架构中的公共存储系统(如HDFS)来管理数据,分散存储到多个节点上实现数据的分区容错性和扩展性。
然后在上层架构采用MPP架构,利用MPP的并行计算能力去优化数据查询和计算等任务,从而减少运算延迟,提高处理效率。

4.深入理解MPP架构和分布式架构的区别
1.相同点:
批处理架构与MPP架构都是分布式并行处理,将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。
2.不同点:
我们执行一个任务,首先这个任务会被分成多个task执行,对于MapReduce来说,这些tasks被随机的分配在空闲的Executor上;
而对于MPP架构的引擎来说,每个处理数据的task被绑定到持有该数据切片的指定Executor上。而对于MPP架构的引擎来说,每个处理数据的task被绑定到持有该数据切片的指定Executor上。
(1)批处理
优点:如果某个Executor执行过慢,那么这个Executor会慢慢分配到更少的task执行,批处理架构有个推测执行策略,推测出某个Executor执行过慢或者有故障,
则在接下来分配task时就会较少的分配给它或者直接不分配,这样就不会因为某个节点出现问题而导致集群的性能受限。
缺点:它的优势也造成了它的缺点,会将中间结果写入到磁盘中,这严重限制了处理数据的性能。MR的shuffle
(2)MPP
优点:MPP架构不需要将中间数据写入磁盘,因为一个单一的Executor只处理一个单一的task,因此可以简单直接将数据stream到下一个执行阶段。
这个过程称为pipelining,它提供了很大的性能提升
缺点:因为task和Executor是绑定的,如果某个Executor执行过慢或故障,将会导致整个集群的性能就会受限于这个故障节点的执行速度(所谓木桶的短板效应),
集群中的节点越多,则某个节点出现问题的概率越大,所以一般实际生产中MPP架构的集群节点不易过多。

举个例子来说下两种架构的数据落盘:要实现两个大表的join操作,
对于批处理而言,如Spark将会写磁盘三次(第一次写入:表1根据join key进行shuffle;第二次写入:表2根据join key进行shuffle;第三次写入:Hash表写入磁盘),
而MPP只需要一次写入(Hash表写入)。
这是因为MPP将mapper和reducer同时运行,而MapReduce将它们分成有依赖关系的tasks(DAG),这些task是异步执行的,因此必须通过写入中间数据共享内存来解决数据的依赖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值