还有集群可采用通用的X86服务器,而MPP早期采用定制的服务器。
NUMA全称为Non-Uniform Memory Access,是主流服务服务器为了提高SMP的可扩展性而采用的一种体系结构。主流服务器一般由多个NUMA节点组成,每个NUMA节点是一个SMP结构,一般由多个CPU组成,并且具有本地内存和IO设备。NUMA节点可以直接访问本地内存,也可以通过NUMA互联模块访问其他NUMA节点的内存,但是访问本地内存的速度远远高于远程访问速度,因此,开发程序要尽量减少不同NUMA节点之间的信息交互。MPP是一种海量数据实时分析架构。 MPP作为一种不共享架构,每个节点运行自己的操作系统和数据库等,节点之间信息交互只能通过网络连接实现。MPP架构目前被并行数据库广泛采用,一般通过scan、sort和merge等操作符实时返回查询结果。目前采用MPP架构的实时查询系统有EMC Greenplum、HP Vertica和Googl jdjdzj e Dremel,这些都是实时数据处理领域非常有特点的系统,尤其是Dremel可以轻松扩展到上千台服务器,并在数秒内完成TB级数据的分析。Hadoop作为一个开源项目群本身和MPP并没有什么直接关系,Hadoop中的子项目MapReduce虽然也是做数据分析处理的,但是一般只适用于离线数据分析,区别与MPP较为明显。因为Map和Reduce两个过程涉及到输出文件的存取和大量网络传输,因此往往达不到实时处理的要求。与MapReduce 相似的系统还有Microsoft Dryad和Google pregel。综上所述,NUMA是一种体系结构,MPP是一种实时海量数据分析架构,而Hadoop是一个关于数据存储处理的项目群,其中的MapReduce是一种离线海量数据分析架构。实测对比GreenPlum和Hive,GP比Hive性能高出至少一个数量级,但是大部分场景下,依然是秒级甚至分钟级的延迟,距离具体通常意义的实时毫秒级,差距巨大。另外说一句,广义的Hadoop包括 Impala, Presto Distributed SQL Query Engine for Big Data 这些MPP架构的SQL引擎。Hadoop社区还在持续发展,Spark还在持续给人们带来惊喜,开源软件的迷人之处也在于此。MPP数据库主要适合查询统计、分析研判等大数据处理场景,主要特点是整体架构呈现纯扁平化,不存在单点性能瓶颈,基于开放式标准X86 PC服务器构建,采用分布式架构设计,灵活实现按需部署,具备灵活的系统伸缩性,支持系统的纵向扩展和横向扩展。国内的产品主要是南大通用的GBase 8a MPP Cluster,是面向大数据、云计算场景自主研发的大规模并行数据库集群产品,在海量数据高速处理的场景下具有高性能、低成本、高可靠、易使用等诸多优势,国外的如GreenPlum、Vertica等。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)