MPP架构与Hadoop架构是一回事吗

  • 电脑网络维修
  • 2024-11-15

计算机畛域的很多概念都存在一些传达上的“舛误”。

MPP这个概念就是其中之一。它的“舛误”之处在于,明明叫做“Massively ParallelProcessing(大规模并行处置)”,却让十分多的人拿它与大规模并行处置畛域最驰名的开源框架Hadoop相关框架做对比,这真实是让人困惑——难道Hadoop不是“大规模并行处置”架构了?

很多人在对比两者时,其实并不知道MPP的含意终究是什么、两者的可比性究竟在哪里。实践上,当人们在对比两者时,与其说是对比架构,不如说是对比产品。只管MPP的原意是“大规模并行处置”,但由于一些历史要素,如今当人们说到MPP架构时,它们实践上指代的是“散布式数据库”,而Hadoop架构指的则是以Hadoop名目为基础的一系列散布式计算和存储框架。不过由于MPP的字面意思,事实中还是经常有人纠结两者究竟有什么咨询和区别,两者究竟是不是同一个层面的概念。

这种概念上的模糊不清之所以还在传达,关键是由于疑问技术的人而青睐这些概念的大有人在,所以也并不在意要去廓清概念。“既然散布式数据库是MPP架构,那么MPP架构就等于散布式数据库应该也没什么疑问吧。”于是大家就都不在意了。

不过,作为一个技术人员,还是应该搞分明两种技术的实质。本文旨在做一些概念上的廓清,并从技术角度论述两者同宗同源且会在未来异曲同工。

究竟什么是MPP架构?

MPP架构与Hadoop架构无通常基础上简直是在讲同一件事,即,把大规模数据的计算和存储散布到不同的独立的节点中去做。

有人或者会问:“既然如此,为什么人们不说Hadoop是MPP(大规模并行处置)架构呢?”

关于这个疑问嘛,请先问是不是,再问为什么。

在GreenPlum的官网文档中就写道:“Hadoop就是一种经常出现的MPP存储与剖析工具。Spark也是一种MPP架构。”来看上方的图,更能体会到两者的相似性。

问:这是什么架构?

答:MPP架构。

置信了解过MPP架构的读者对这幅图不会生疏。兴许在不同的散布式数据库产品中,节点角色的称号会有差异,但总体而言都是一个主节点加上多个从节点的架构。

但是,还可以有其余答案,比如MapReduce on Yarn:

这幅图或者大家有些生疏,但只不过是省略了资源调度的简化版MapReduce运转时架构罢了。

当然,还可以有更多答案,如Spark:

人造还可以是Flink:

有人或者会说,只管直观上这些架构长得很像,但是MPP架构中的Master所担任的事件是不是与其余框架不一样?

那么,MPP架构的Master做的什么事呢?它会接纳SQL语句,解析它并生成口头方案,将方案散发到各个节点。那么,这与SparkSQL有区别吗?不只与Spark SQL没有区别,与其余任何Hadoop生态圈相似架构如Hive SQL、FlinkSQL都没有区别。关于非SQL的输入,逻辑也是分歧的,只是没有了解析SQL的步骤,但还是会生成口头图散发到各个节点去口头,口头结果也可以在主节点启动汇总。

不只是在计算上没有区别,存储架构上也没有区别。上方是HDFS的架构图:

所以回到最后说的那句话——MPP架构与Hadoop架构无通常基础上简直是在讲同一件事,即,把大规模数据的计算和存储散布到不同的独立的节点中去做。上方的几幅架构图印证了这一点。

既然MPP架构与Hadoop架构实质上是一回事,那么为什么很多人还要将两者分开探讨呢?咱们或者经常听到这样的话:“这个名目的架构是MPP架构。”这仿佛无心在说:“这可不是Hadoop那一套哦。”

这就与MPP架构的历史有相关。只管从通常基础上两者是一回事,但是MPP架构与Hadoop架构的开展却是走的两条路途。MPP架构只管也是指的“大规模并行处置”,但是由于提出者是数据库厂商,所以MPP架构在很多人眼中就成了“散布式数据库”的代名词,它处置的也都是“结构化”的数据,经常作为企业数据仓库的处置方案。而Hadoop生态圈是根正苗红随同着“大数据”兴起而开展起来的概念,它所要处置的是大规模数据量的存储和计算,它的提出者也并非数据库厂商,而是有着C端数据的互联网企业。因此Hadoop架构只管也处置“大规模并行处置”,但没有了数据库那一套物品的限度,处置的也大多是“非结构化”的数据(人造在最后阶段也少了相关的提升)。当然,Hadoop生态圈也要思索“结构化”的数据,这时Hive就成了Hadoop生态圈的数据仓库处置方案。但是,Hadoop、Spark等框架的通常基础与散布式数据库依然是一样的。

狭义上讲,MPP架构是一种更上档次的概念,它的含意就是字面含意,但是它自身并没有规则如何去成功。Hadoop相关框架和各个散布式数据库产品则是详细的成功。狭义上讲,MPP架导致了散布式数据库这种体系架构的代名词,而Hadoop架构指的是以Hadoop框架为基础的一套生态圈。

本文并不想仅仅从较上档次的架构设计来说明两者是一回事,这样还是不足压服力。上方,咱们从散布式计算框架中最关键的环节——Shuffle——来展现两者更多的相似性。

数据重分区

Shuffle是散布式计算框架中最关键的概念与环节之一。在MPP架构(散布式数据库)中,这个数据重分区的环节与Hadoop相关框架在计算中的数据重分区环节也是分歧的。

无论是HadoopMapReduce,还是Spark或Flink,由于业务的需求,往往须要在计算环节中对数据启动Hash分区,再启动Join操作。这个环节中不同的框架会有不同的提升,但是归根究竟,可以总结为两种形式。

其中一种形式就是直接将两个数据源的数据启动分区后,区分传输到下游义务中做Join。这就是普通的“Hash Join”。

另一种形式是,当其中一个数据源数据较少时,可以将该数据源的数据散发到一切节点上,与这些节点上的另一个数据源的数据启动Join。这种形式叫做“BroadcastJoin”。它的好处是,数据源数据较多的一方不须要启动网络传输。

以上是Hadoop相关框架的成功。上方用一个详细的例子来看MPP架构对这一环节的思索。

在MPP架构中,数据往往会先指定分区Key,数据就依照分区Key散布在各个节点中。

如今假定有三张表,其中两张为大表,一张为小表:

很人造地,订单表会选用订单ID用做分区Key,产品表会选用产品ID作为分区Key,客户表会选用客户ID作为分区Key。给这些表中减少一些数据,并且口头一个查问语句:

首先,订单表要与客户表做Join,JoinKey是客户ID。这种操作在Hadoop生态圈的散布式计算框架中,相当于对两个表做了Hash分区的操作。不过由于客户表曾经依照客户ID提早做好了分区,所以这时只须要对订单表做重分区。在MPP架构中,会发生如下的结果:

此时,订单表整个表的数据会出现重分区,由此发生网络IO。这种状况相当于Hadoop架构中的“Hash Join”。

接着,须要让结果与产品表依照产品ID做Join。这时,由于之前发生的结果的分区Key不是产品ID,看起来又须要将整个数据启动重分区。不过,留意到产品表是个小表,所以此时只须要将该表广播到各个节点即可。结果如下:

在这个环节中,就只要小表的数据出现了网络IO。这就相当于Hadoop架构中的“Broadcast Join”。

两者还有区别吗?

前文在MPP架构的概念、历史以及技术细节上与Hadoop架构做了对比,了解到了两者一些极为相似的中央,而且在狭义上讲,Hadoop就是MPP架构的一种成功。

但是前文也讲到,由于传达上的舛误,如今人们说到MPP架构,关键指的是散布式数据库,它处置的是结构化的数据,而Hadoop生态圈是由“大数据”这套概念开展而来,最后处置的都是非结构化的数据。以此为登程点,两者究竟在开展环节中发生了多大的区别呢?

对比的维度有很多,比如很多人会说,MPP架构的平台敞开、领有成熟的人才市场,而Hadoop架构平台放开、人才专业培训较少等。但这些并不是实质的区别。这里还是以技术目的作为维度来启动对比。

技术角渡过去讲,MPP产品最大的长处是作业运转期间更快。这不难了解,由于MPP产品处置的都是结构化数据,自身就是从数据库开展而来,领有极为复杂的提升器对作业启动提升。这些提升器是各厂商最有价值的商业秘密,人造是开源产品不能比的。不过另一个角度来看,这也是MPP产品相比于Hadoop相关产品不够灵敏的中央——它只能处置结构化数据。

有人说MPP产品能够处置的数据量没有Hadoop架构大。这种说法并不准确。Hadoop架构之所以能处置更少量的数据,其中一个要素是配件老本较低,裁减愈加的繁难。实践上,经过精心设计的MPP架构照样可以处置PB及以下级别的数据。有人说,MPP产品不能处置大规模数据,是由于元数据的量十分渺小。其实,雷同的疑问也存在于Hadoop相关框架中。另一方面,Hadoop相关框架能处置多少量的数据,与详细的成功有很大相关。假设领有足够的资金可以对MPP产品启动裁减,而Hadoop相关产品咱们又用基于内存的计算,那么,对比的结果必定是MPP产品能够应答更大的数据量。假设非要从数据量这一维度来做对比,或者反而是Hadoop相关产品对小数据量更有长处。比如想要存储一个极小的表,MPP产品兴许会依据分区Key将其拆分到100个节点中去,而HDFS用一个文件块存储就够用了。

未来开展

前面讲到MPP产品对结构化数据的计算和存储都更有效率。其中一局部提升就包含了存储时的“列存储”技术,查问时的“CBO提升”等等。这些都是Hadoop生态圈一开局比拟不足的技术。但是随着这些年的开展,这些技术早就融入到了Hadoop生态圈中,Hive、Spark框架的提升技术也越做越好,由此与MPP架构的技术差距也越来越小,甚至有笼罩的趋向。从最外围的技术过去看,两者未来只会越来越像。可以预测,Hadoop架构的市场会越来越大。

不过,散布式数据库产品在安保性等方面依然提供着更成熟的处置方案,这是开源产品短期间内不可逾越的。因此,“MPP架构”这个概念依然会在政府、传统企业中常年占有一席之地。

戳这里,看该作者更多好文

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:http://www.duobeib.com/diannaowangluoweixiu/8025.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号