Hadoop与MPP解析

    其实MPP(大规模并行处理计算机)架构的关系型数据库与Hadoop的理论基础是很相似的,都是将运算分布到节点中独立运算后进行结果合并

Hadoop与MPP的区别:

1.底层数据库:
    MPP跑的是SQL,而Hadoop底层处理是MapReduce程序。
2.扩展程度
    MPP虽然是宣称可以横向扩展Scale OUT,但是这种扩展一般是扩展到100左右,而Hadoop一般可以扩展1000+。

这是因为什么呢?其实可以从CAP理论上来找原因。

在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
    一致性(Consistency):
同一个数据在集群中的所有节点,同一时刻是否都是同样的值。
    可用性(Availability):
集群中一部分节点故障后,集群整体是否还能处理客户端的更新请求。
    分区容忍性(Partition tolerance):
是否允许数据的分区,分区的意思是指是否允许集群中的节点之间无法通信。

因为MPP始终还是DB,一定要考虑到C(Consistency),其次考虑A(Availability),最后才在可能的情况下尽量做好P(Partition-tolerance)。而Hadoop就是为了并行处理和存储设计的,所以数据都是以文件存储,所以有限考虑的是P,然后是A,最后再考虑C.所以后者的可靠型当然好于前者。

以下几个方面制约了MPP数据库的扩展
1.高可用:MPP DB是通过Hash计算来确定数据行所在的物理机器(而Hadoop不需要此操作),对存储位置的不透明导致MPP的高可用很难办。
2.并行任务:数据是按照Hash来切分的,但是任务没有。每个任务,无论大小都要到每个节点上走一圈。
3.文件系统:数据切分了,但是文件数没有变少,每个表在节点上一定有一个到多个文件。同时节点数越多,存储的表越多,导致每个文件系统有上万甚至十万多个文件。
4.网络瓶颈:MPP强调对等的网络,点对点的连接也消耗了大量的网络宽带,限制了网络上的线性扩展(想象以下一台机器要给1000台机器发送信息)。等多的节点并没有提供更高的宽带,反而导致每个组节点间平均宽带降低。
5.其他关系数据库的枷锁:比如锁,日志,权限,管理节点瓶颈等均限制了MPP规模的扩大。

Hadoop和MPP的应用场景

    MPP数据库有对SQL的完整兼容和一些事务的处理能力,对于用户来说,在实际的使用场景中,如果数据扩展需求不是特别大,需要的处理节点不多,数据都是结构化的数据,习惯使用传统的RDBMS的很多特性的场景,可以考虑MPP,例如Greenplum/Gbase等。
    如果有很多非结构化数据,或者数据量巨大,有需要扩展到成百上千个数据节点需求的,这个时候Hadoop是更好的选择。

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值