计算机领域的很多概念都存在一些传播上的“谬误”。
MPP这个概念就是其中之一。它的“谬误”之处在于,明明叫做“Massively Parallel Processing(大规模并行处理)”,却让非常多的人拿它与大规模并行处理领域最著名的开源框架Hadoop相关框架做对比,这实在是让人困惑——难道Hadoop不是“大规模并行处理”架构了?
很多人在对比两者时,其实并不知道MPP的含义究竟是什么、两者的可比性到底在哪里。实际上,当人们在对比两者时,与其说是对比架构,不如说是对比产品。虽然MPP的原意是“大规模并行处理”,但由于一些历史原因,现在当人们说到MPP架构时,它们实际上指代的是“分布式数据库”,而Hadoop架构指的则是以Hadoop项目为基础的一系列分布式计算和存储框架。不过由于MPP的字面意思,现实中还是经常有人纠结两者到底有什么联系和区别,两者到底是不是同一个层面的概念。
这种概念上的含混不清之所以还在流传,主要是因为不懂技术的人而喜欢这些概念的大有人在,所以也并不在意要去澄清概念。“既然分布式数据库是MPP架构,那么MPP架构就等于分布式数据库应该也没什么问题吧。”于是大家就都不在意了。
不过,作为一个技术人员,还是应该搞清楚两种技术的本质。本文旨在做一些概念上的澄清,并从技术角度论述两者同宗同源且会在未来殊途同归。
到底什么是MPP架构?
MPP架构与Hadoop架构在理论基础上几乎是在讲同一件事,即,把大规模数据的计算和存储分布到不同的独立的节点中去做。
有人可能会问:“既然如此,为什么人们不说Hadoop是MPP(大规模并行处理)架构呢?”
关于这个问题嘛,请先问是不是,再问为什么。
在GreenPlum的官方文档中就写道:“Hadoop就是一种常见的MPP存储与分析工具。Spark也是一种MPP架构。”来看下面的图,更能体会到两者的相似性。
问:这是什么架构?
答:MPP架构。
相信了解过MPP架