首页 > 新闻 > 专家观点 >

新一代数据中心的分布式计算架构

2014-06-11 11:02:20   作者:   来源:中关村在线   评论:0  点击:


  2.分布式架构应用现状

  当前主流的分布式应用有两种:分布式数据库和Hadoop分布式系统。两种解决方案对比如表1所示。

  表1. 分布式数据库和Hadoop分布式系统的对比

  MPP分布式数据库较Hadoop分布式系统,在复杂逻辑的结构化数据处理上具有一定的优势,且可基于SQL开发,对于有较丰富SQL经验的系统开发者,开发与运维更容易。当然,业界MPP分布式数据库产品价格也要高于Hadoop这个源于开源社区的产品。

  这是否意味着MPP分布式数据库就是大数据处理的最佳解决方案呢?我们以银行系统数据的价值密度和数据特征为例来考虑这个问题。对于银行系统数据,我们基本可以达成这样一个共识:银行系统数据中,结构化数据价值密度通常高于非结构化或半结构化数据,而在银行数据中非结构化数据占用了大量的存储资源。这是因为银行系统中结构化数据以账务数据为主,而非结构化数据则主要集中在凭证影像等数据。当然结构化数据中也包括部分日志信息等价值密度不高的数据。

  数据存储与处理技术在由"一种架构支持所有应用"向"多种架构支持多类应用"转变。同样对于数据消费层数据处理技术,也应根据数据价值密度及数据特征等因素采用与之相匹配的架构来支持。对于数据消费层数据中那些价值密度高的交易及账务数据可采用MPP分布式数据库构建数据处理平台,而对于那些价值密度不高的结构化数据和非(半)结构化数据则可以采用Hadoop分布式系统作为处理平台。

  3.分布式局限性:CAP理论

  如图2所示,CAP原理中有三个要素:一致性(Consistency),可用性(Availability)和分区容忍性(Partition tolerance)

  图2.CAP原理示意图

  CAP原理指的是在分布式系统中这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数Web应用,其实并不需要强一致性, 因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。

  从客户端角度,多进程并发访问时,更新过的数据在不同进程如何获取的不同策略,决定了不同的一致性。对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。如果能容忍后续的部分或者全部访问不到,则是弱一致性。如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。

  但Web应用也有例外,比如支付宝系统,就要求数据(银行账户)的强一致性,而且面对大量淘宝用户,可用性要求很高,因此只能牺牲数据的分区冗余。

  对于MPP DB而言,虽说是宣称Scale out(横向扩展),但是这种out一般到100,而Hadoop一般可以到1000+。在我们的测试中,也发现线性扩展性一项即使是在较小的节点数方面,也并未达到绝对的直线的性能。

  这是为什么呢?我们大致可以从CAP理论上来找到一些理由。因为MPP DB始终还是DB,一定要考虑C(Consistency),其次考虑A(Availability),最后才在可能的情况下尽量做好P(Partition-tolerance)。而Hadoop就是为了并行处理和存储设计的,所以优先考虑的是P,然后是A,最后再考虑C。所以后者的可扩展性当然好于前者。

相关阅读:

分享到: 收藏

专题