1. 架构的介绍

mpp架构是将许多数据库通过网络连接起来,相当于将一个个垂直系统横向连接,形成一个统一对外的服务的分布式数据库系统。每个节点由一个单机数据库系统独立管理和操作该物理机上的的所有资源(CPU,内存等),节点内系统的各组件间相互调用无需通过主节点。

Hadoop架构是将不同的资源管理与功能进行分层抽象设计,每层形成一类组件,实现一定的解耦,包括存储资源管理等,在每层内进行跨节点的资源统一管理或功能并行执行,层与层之间通过接口调用,相互透明,节点内不同层的组件间的相互调用需要由“控制节点”掌握或通过“控制节点”协调,即控制节点了解每个节点不同层组件间的互动过程。

2 各自的优势

2.1 水平扩展性

Hadoop架构的水平扩展性更高。Hadoop架构能够扩展到10K台机器,Mpp架构最高只能扩展到几百台。

2.2 容错

Hadoop的容错性更高,其存储与计算都是分离开来,同时存在副本。而在MPP架构下,某个节点异常之后,整个计算过程就被阻塞住。

2.3 事务支持

MPP架构对事物支持得更好,MPP架构下各个节点是单机数据库,能够很好的支持事务,只需master节点增加全局事务的逻辑,即可做到很好的事务支持。Hadoop架构下的事务支持能力很弱。

2.4 数据结构

Hadoop架构可适用于非结构化,半结构化,结构化数据(Hbase),MPP架构只适用于结构化数据。

总的来说,Hadoop架构在数据量比较低的情况下,运行速度远不及MPP架构,但数据量一旦超过某个量级,Hadoop架构的在吞吐量方面更有优势。有些大数据数据仓库产品也采用混合的架构,以融合两者的优点。例如Impala,Presto都是基于HDFS的MPP分析引擎,仅利用HDFS实现分区的容错性,放弃MapReduce计算模型,在面向OLAP场景时可实现更好的性能,降低延迟