• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

数字化来了,该选择大数据存储主流架构MPP和Hadoop的对比

武飞扬头像
少晗
帮助1

学新通

关注:工众号;数元斋

    随着云计算、大数据产业的不断发展,传统使用单机数据库进行数据存储的模式已经不能满足业界日益增长需求,海量数据处理成为一个关键问题。目前主流的海量数据处理架构分为两种:1基于传统数据库及数据仓库所衍生出的MPP(Massively Parallel Processing)架构;2 基于Hadoop 并行计算框架的分布式架构。

    传统关系型数据库随着数据量增长性能急剧下降,业界提出一种横向扩展(scale out)方式,通过增加节点使用更多廉价的机器构建更强的集群系统。

   在这种背景下,分布式数据库和数据仓库越来越受到重视,其中基于MPP架构的数据库是主流解决方案,越来越多的厂商选择使用它改造和升级原有软件系统。Hadoop是一种分布式数据处理框架,使用普通 X86 计算机组成分布式系统处理海量数据及进行大数据分析。Hadoop 架构近年伴随着云计算而兴,其生态系统和大数据紧密联系在一起,不仅仅因为它是开源系统,更主要的是它形成了一个完整的技术生态圈。

   混合架构则综合了MPP 架构和 Hadoop 架构各自特点,通过混合部署将各自的优点充分发挥出来。将 Hadoop 生态系统与 ETL、Spark 处理引擎一起使用, 结合基于MPP 的海量并行处理数据库(MPP)实现银行综合风险管理系统,具有更好的性能;基于 MPP- Hadoop 混合框架构建一套融合多种不同结构数据的数据集成系统 ,提升了数据查询和加载效率。同时,混合架构 案例近年得到长足发展。

   本文对 MPP 和 Hadoop 两种架构进行深入分析,并对 比各自优缺点以及适用范围,给出不同类型应用的技术架 构选型推荐方案。

1 基于 MPP 的数据处理架构

    MPP 指处于不同部分的多个处理器对程序进行协同处理的过程,每个处理器使用自己的操作系统、内存、总线 和磁盘等,如图 1 所示。通常 MPP 处理器使用某些消息传 递接口进行通信。在某些实现中,同一应用程序最多可以 使用 200 个或更多处理器,这种结构最大的特点在于共享资源。

学新通

MPP 数据库(MPP DB)基于MPP架构,通过并行化各种操作提高性能,如加载数据、构建索引以及使用并行的 多个 CPU 和磁盘等。

     MPP 数据库通常具有无共享架构,因为每个系统都有自己的CPU、内存和磁盘。通过数据库软件和高速互连,系统可以整体运行,并且可通过添加新服务器对集群进行扩展。MPP 数据库通常比托管在大型多处理器服务器上的传统 RDBMS 更灵活,可伸缩且更具成本优势,可提供快速的交互式查询响应,如图 所示。这种架构特征是任务 并 行 执 行 、数 据 分 布 式 存 储( 本 地 化 )、分 布 式 计 算 、资 源 私 有、可横向扩展等。

学新通

1.1 MPP 数据库集群架构

  MPP 数据库集群架构分为以下两种架构:

  (1)有专职Master。Master 节点的主要功能是作为系统访问入口,对存储在系统中的元数据进行管理,以及实 现 SQL Parser,生成执行计划和任务调度等。Master 有两 个节点,会进行数据同步,在出现故障时可切换。典型产品有 Greenplum、AsterData、ParAccel、Hawg 等。

   (2)无专职 Master。Master 节点和数据节点共享一台物理机,先连接上的节点会作为系统的 Master。典型产品 有 Gbase8a、Vertica、Teradata、DB2、Impala 、IBM BigSQL、 HP DragonRed、VerticaVIVE 等。

1.2 MPP 架构选择 

    两种架构各有优缺点,在超大规模分布式集群中,第2种架构更有优势,可演变为“多 master”架构(如 Gbase8a 和 Vertica 集群)。此种架构下,通过 Zookeeper 等分布式一致性软件协调多个master,提供高可用性、透明性以及扩展性,同时数据节点具有对等性。

学新通

2 基于Hadoop架构的数据处理框架

2.1 Hadoop 数据分块

   Hadoop 架构与 MPP 架构相似,下图显示 Hadoop 处理数据过程。名称服务器(NameNode)充当目录查找服务。Hadoop 将数据分成任意块,大小一般设为 128Mb,将其复制到至少两个其它节点以实现分布式存储。小文件(小于128Mb的文 件)完全保存在单个节点上,甚至1G大小的文件也只需要 分布在8个节点(加上副本)上。因此,Hadoop可处理非常大的数据集。

   由于小表格分布在较少服务器上,因此对于 50~100Gb 以下的数据文件不是理想选择。在 Hadoop 上处理小数据集是一个挑战,因为在某些情况下,单个节点上处理数据 完全按顺序运行而不是并行运行。许多 Hadoop集群倾向于使用大量相对较慢且价格便宜的服务器,因此小数据性能可能较差。此外,随着小文件数量增加,名称服务器管理问题会越来越多。经验表明,在大多数中型数据仓库平台(大约 10Tb 的数据)上只有大约 10%的表拥有超过 100Gb 的数据,而 70%的表不足 1Gb 数据。即使两个最大的表超过 1Tb,对于在 Hadoop 上部署也不是很有利。

学新通

2.2 Hadoop 集群架构

    Hadoop 处理框架包括 3 个模块:HDFS、MapReduce 和YARN。

学新通

  (1)HDFS 是一个分布式文件系统,用于将单个集群扩展到数百个甚至数千个节点,具有高度的容错能力,部署 在低成本硬件上。HDFS 提供应用程序高吞吐量数据访 问,适用于具有大数据集的应用程序。

  (2)MapReduce 是一个软件框架,以高可靠性、高容错 方式并行处理大型集群(数千个节点)上的海量数据(多 TB 数据集)。MapReduce作业通常将输入数据集拆分为独立 的块,这些任务以完全并行的方式进行处理。

  (3)YARN:Hadoop 集群资源管理主要依靠资源管理器 (YARN)提供细粒度的资源管理。MapReduce 作业不需要并行运行所有计算任务,因此可以处理大量的计算任务, 具有可扩展性及支持长寿命容器等功能,但它比 MPP 资源管理器要慢,有时对于并发性管理支持不是很好。

2.3 Hadoop 数据查询

   Hadoop 的 SQL接口有多种工具供选择,包括 MR/Tez/Spark 上运行的 Hive、SparkSQL、Impala、HAWQ 或 IBM BigSQL。

   (1)Hive 将 SQL 查询转换为 MR / Tez / Spark 作业并在集群上执行。所有作业均基于相同的 MapReduce 概念 构建,提供良好的集群利用率,以及与其它 Hadoop 堆栈技 术的良好集成。缺点是执行查询延迟大,尤其表连接性能 较低,没有查询优化器(至少目前是这样),因此即使是最 不合理的查询引擎也会执行操作。

   (2)SparkSQL 是介于 MapReduce 和 MPP-over-Hadoop 方法之间的一种工具,兼顾两者优点。与 MapReduce 相 似,将工作分解为一组单独计划任务以提供更好的稳定 性。在执行阶段之间进行流式传输数据以加快处理速度, 使用类似 MPP 中的固定执行程序概念减少查询延迟。

   (3)混合方案如 Impala 和 HAWQ 类的解决方案,是 Hadoop 之上的 MPP 执行引擎,可处理 HDFS 中存储的数 据。与其它 MPP 引擎一样,可提供更低的延迟和更少的查 询处理时间,但代价是可伸缩性和稳定性较低。

3 Hadoop 与 MPP 架构选择

3.1 节点架构

  (1)底层数据库。MPP 底层运行的是SQL引擎,而Hadoop 底层处理是 MapReduce 程序。(2)扩展程度。MPP虽然支持横向扩展,但一般只支持扩展到百个节点级别,Hadoop 则可以扩展到千个节点 级别。

  基于 Hadoop 框架的数据平台可看作是新一代的分布式数据仓库产品,而 MPP 数据库会应用与大数据类似的解决方案。针对不同使用场景,其发挥的作用和给用户带来的体验也不同。

  MPP 和 Hadoop 平台互为补充,分别用于不同场景。MPP 用于高端数据库产品,Hadoop 可部署到普通 X86 集群。MPP和Hadoop底层支持的硬件不同,Hadoop控制机制大多通过 Java 代码实现,而 MPP 产品则通过SQL进行查询。Hadoop 的子项目“Hive”本质上也是通过 MapReduce 提供SQL抽象。在许多情况下,与编写 MapReduce 作业相比,SQL 更容易且生产率更高,具有 SQL 技能的数据库专业人员比 Hadoop 专家更多且成本更低。

3.2 CAP 理论

  CAP 定 理(CAP theorem)又 称 布 鲁 尔 定 理(Brewer's theorem),在理论计算机科学中指一个分布式系统最多只 能满足以下 3 个特征中的两个:1一致性(Consistency):同 一时间系统中所有的节点都具有相同的数据值;2可用性(Availability):系统中即使一个或多个节点发生故障,客户端的任何请求仍将获得响应;3分区容忍性(Partition toler⁃ ance):即使系统节点之间发生许多通信故障,集群也必继续工作。

   CAP 理论是 MPP 架构扩展性弱的原因,因为 MPP 数据库设计仍然以数据查询为主要目的,首先考虑一致性, 其次考虑可用性,最后在可能的情况下考虑分区容忍性。而 Hadoop 是为并行处理与存储设计的,所以数据均以文 件存储,有限考虑分区容忍性,然后考虑可用性,一致性则 最后考虑,所以可靠性上 Hadoop 要优于 MPP。

3.3 数据扩展制约性

  (1)高可用。MPP 数据库通过将哈希算法应用于分配键列值,在数据切片之间确定数据存储的物理机器,而 Ha⁃ doop 则是通过数据分块实现分布式存储,因而 Hadoop 可 用性更强。

  (2)并行任务。虽然 MPP 是根据 Hash 切分数据的,但 是它的任务没有切分,因此任务都会在每个节点上运行一次。(3)文件系统。在 MPP 数据库中,虽然数据被切分了,但文件数量并未减少,每个表在节点上有一个或多个文件。存储的表越多节点数就越多,导致系统存储过多文 件。

  (4)网络瓶颈。MPP 数据库大多使用对等节点架构, 对等的点对点连接消耗大量网络宽带,限制系统线性扩 展。Hadoop 使用主从节点架构,在线性扩展上强于 MPP。

  (5)其它关系数据库限制。关系型数据库中的锁机制、日志系统、权限管理、节点管理等瓶颈均限制 MPP 规模扩大,而 Hadoop 没有使用关系型数据库,并且有专用的分 布式一致性管理软件,因此这些性能要优于 MPP。

3.4 技术选择

Hadoop 架构数据存储、传统数据仓库、MPP 数据库技术性能及适用场景对比如表 2 所示。

学新通

  因此,Hadoop 和 MPP 两种技术应根据具体业务以及场景进行选择。

  (1)对于半结构化和非结构化数据,Hadoop 在处理上比 MPP 有一定优势,适合于海量数据批处理类应用,如海 量数据 ETL、非结构化数据分析与挖掘(关键词提取、情感 分析等)。若系统对非结构化数据存储需求较大且数据量巨大,需要动态扩展数据节点等,则使用 Hadoop 架构更为合适。

  (2)MPP 架构更适合对现有关系型数据库和数据仓库 系统进行升级或替换,其在数据查询类业务上比 Hadoop 更具优势,适合处理 SQL 类事务请求、多维度数据分析、展 示数据报表等。若大部分存储数据是结构化数据,数据量不是很大,未来不会爆炸式增长,或业务人员习惯使用 SQL 场景,则可优先考虑使用 MPP 数据库。

  (3)MPPDB Hadoop 混合架构是未来海量数据处理发展趋势。用 MPP 处理 PB 级结构化数据存储与查询,提供 完整的 SQL 与事务支持功能。用 Hadoop 处理半结构化、 非结构化数据,提供灵活的自定义模型与算法开发能力, 同时满足多种数据类型处理需求,并在实时查询与离线分析上都能提供较高性能。但MPP Hadoop混合架构开发成本及维护成本可能较高。

   在数据爆炸时代,传统的数据库架构处理系统已经不 能满足行业需要。本文从理论及应用角度将两种主流的 海量数据处理架构 MPP 和 Hadoop 进行对比,分析各自的 技术特点,论述它们与传统数据处理的优势。通过分析两 大框架底层核心技术,对其优缺点进行了归纳。Hadoop 对 海量半结构化、非结构化数据存储与处理有一定优势,但 在处理速度和易用性上不及 MPP。Hadoop 灵活性较强,企业可根据自身业务特点进行定制开发。MPP优势在海量结构化数据处理、响应性能和衍生工具等方面,适用于查询业务场景较多的项目。随着 Hadoop 生态圈的不断发展,如Hadoop的SQL性能提升、BI工具的不断丰富,MPP 技术发展会向 Hadoop 靠拢。基于MPP与Hadoop框架并结合Spark内存计算、流计算等技术的混合架构平台,会成为大型数据处理项目的理想选择。

关注公号;数元斋    私聊我

了解更多数字化咨询与知识!

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiabfhg
系列文章
更多 icon
同类精品
更多 icon
继续加载