通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

为什么说HADOOP扩展性优于MPP架构的关系型数据库

hadoop(hive)跟mpp的本质区别是什么,这个有的时候界限很模糊,比如说存储,如果我把mpp的存储架在hdfs上,那存储模型就没有区别了,所以地下我打算还是用比较传统的认知来作区别。

一、为什么说HADOOP扩展性优于MPP架构的关系型数据库

1. hadoop(hive)跟mpp的本质区别是什么,这个有的时候界限很模糊,比如说存储,如果我把mpp的存储架在hdfs上,那存储模型就没有区别了,所以地下我打算还是用比较传统的认知来作区别。

2. hive跟mpp的存储模型不一样,hive用的hdfs,而mpp需要自己做切分,自己做切分就带来动态调整的问题,hdfs的扩展是通过元数据来做的,他有中心节点用来存元数据,在加入新的节点的时候,只需要修改元数据就可以了,所以hdfs的扩展能力是受到管理元数据那台机器的性能限制的,一般来说可以到10k这个规模,再向上就不行了。但是mpp通常采用的是没有中心节点的存储模型,比如hash,你每次增加节点的时候,都需要rehash,这样当规模到了几百台的时候,扩展能力就下来了。当然,现在可以把存储架在hdfs上,这样在存储上就没有太大区别了。

3. hive跟mpp的内存管理方式不大一样,mpp内存管理比较精细,他主要的想法是在每个机器上放个数据库,传统数据库的内存管理比较复杂,主要是内外存交互的东西,这样的架构决定了mpp在小数据量的时候,latency可以做的比较小,但是在大数据量的时候,throughput做不上去。而hive的内存管理非常粗放,他后来就是mapreduce的job,mr的job是没有太多精细的内存管理的,他就是拼了命地scan,完了顶多就是个spill,这样的架构导致throughput很大,但是latency很高,当你集群规模很大的时候,你一般会追求很大的throughput,当数据量很大的时候,如果你用mpp那种传统的内存管理的话,大批量的计算反而会慢,而且更加占资源,所以vertica这种一开始就考虑了列式存储就是这个道理。

4.事务,你可以认为hive不支持传统意义上的那种高并发的事务,而mpp试图想要支持,一旦你要上分布式事务,基本上你的可扩展性就上不去了,至于为啥,陈皓有一篇文章写的不错,建议看下。hive的ddl是可以多个并发的,但是dml不行,而ddl他是通过传统的数据库去做的,所以这个也是个中心节点,dml不行的话,就决定了他可以在底层跑mr这么重粒度的东西,他跑的时候,会在整个表上面加一把大锁。

5.failover机制,hive的failover就是mr的failover,job挂掉了重新换机器跑就完了,但是mpp如果采用传统架构的话,他的计算是要attach到数据节点上去的,如果你规模上去,那么fail的可能性就上去了,这样如果你每次计算都有台机器挂了,你一挂,别人就要等你,而不是换台机器继续跑,那么这个也限制了可扩展性,当然,如果mpp在底层用了统一的存储,完了计算也可以到处转移,再想个办法把中间状态记录下来,也可以扩展(这个实际上就是sparksql)。

延伸阅读:

二、MongoDB是什么

非关系型数据库(nosql ),属于文档型数据库。MongoDB采用类JSON的documents来存储数据。数据结构由键值(key=>value)对组成。

MongoDB采用动态数据模型schema,这意味着不需要预先定义表的数据类型和字段名。当MongoDB需要更新文档documents的时候,可以轻松增加新的字段名或者删除旧的字段。MongoDB让数据结构更加层级化,因而存储数组等复杂数据结构。 在同一个集合collection中,文档document对字段也没有强约束,因此更容易设计差异化的数据结构。

相关文章