关于hadoop:Hive与HBase相比如何?

关于hadoop:Hive与HBase相比如何?

How does Hive compare to HBase?

我有兴趣了解最近发布的(http://mirror.facebook.com/facebook/hive/hadoop-0.17/)Hive与HBase在性能方面的比较。 Hive使用的类似SQL的接口比我们已实现的HBase API更好。


很难找到有关Hive的很多信息,但是我在Hive站点上发现了这个片段,该片段非常倾向于HBase(加粗):

Hive基于Hadoop,它是一个批处理系统。因此,该系统不能也不能够保证查询的低延迟。这里的范例严格是提交作业,并在作业完成时得到通知,而不是实时查询。因此,不应将其与像Oracle这样的系统进行比较,因为该系统仅对少量数据进行分析,但由于迭代之间的响应时间少于几分钟,因此迭代进行的分析要多得多。对于Hive查询,即使是最小的作业,响应时间也可能在5到10分钟左右,对于较大的作业,响应时间甚至可能长达数小时。

由于HBase和HyperTable都是关于性能的(基于Google的BigTable建模),因此听起来好像它们肯定会比Hive快得多,但代价是功能和学习曲线更高(例如,它们没有联接或SQL) -like语法)。


从一个角度来看,Hive由五个主要组件组成:类SQL的语法和解析器,查询计划器,查询执行引擎,元数据存储库和列式存储布局。它的主要重点是数据仓库式分析工作负载,因此不需要通过键进行低延迟的值检索。

HBase具有自己的元数据存储库和列式存储布局。可以在HBase表上编写HiveQL查询,从而使HBase可以利用Hive的语法和解析器,查询计划程序和查询执行引擎。有关更多详细信息,请参见http://wiki.apache.org/hadoop/Hive/HBaseIntegration。


Hive是一种分析工具。就像猪一样,它是通过利用map reduce进行临时批处理潜在大量数据的设计。想想terrabytes。想象一下在关系数据库中尝试这样做...

HBase是基于BigTable的基于列的键值存储。尽管您可以通过HBase运行map reduce作业,但您本身不能执行查询。它的主要用例是按键获取行或扫描行范围。一个主要功能是,在跨行键范围扫描列的"族"时,可以具有数据局部性。


据我所知,Hive更像Pig。 Hive类似于SQL,而Pig则基于脚本。
Hive在查询优化和执行引擎方面似乎更加复杂,并且要求最终用户需要指定架构参数(分区等)。
两者都打算处理文本文件或sequenceFiles。

HBase用于键值数据的存储和检索...您可以扫描或过滤这些键值对(行)。您不能对(键,值)行进行查询。


Hive和HBase用于不同的目的。

蜂巢:

优点:

  • Apache Hive是建立在Hadoop之上的数据仓库基础架构。
  • 它允许查询存储在HDFS上的数据,以通过HQL(一种类似SQL的语言)进行分析,该数据将转换为一系列Map Reduce作业
  • 它仅在Hadoop上运行批处理。
  • 它符合JDBC,还与现有的基于SQL的工具集成
  • Hive支持分区
  • 它支持对一段时间内收集到的数据进行分析查询
  • 缺点:

  • 它当前不支持更新语句
  • 应该提供预定义的架构,以将文件和目录映射到列中
  • HBase:

    优点:

  • 可扩展的分布式数据库,支持大型表的结构化数据存储
  • 它提供对大数据的随机,实时读写访问。 HBase操作在其数据库而不是MapReduce作业上实时运行
  • 它支持表的分区,并且表进一步分为列族
  • 通过使用Hadoop来横向扩展海量数据
  • 在存储或检索时提供基于密钥的数据访问。它支持添加或更新行。
  • 支持数据整理。
  • 缺点:

  • HBase查询以需要学习的自定义语言编写
  • HBase不完全符合ACID
  • 不能与复杂的访问模式(例如联接)一起使用
  • 在进行大批量MapReduce时,它也不能完全替代HDFS
  • 摘要:

    Hive可以用于分析查询,而HBase可以用于实时查询。甚至可以从Hive读取数据并将其写入HBase,然后再返回。


    在最新的Hive版本中,由于Hive和HBase已集成在一起,因此发生了许多变化,需要进行少量更新。这意味着Hive可用作HBase数据存储区的查询层。现在,如果人们正在寻找替代性的HBase接口,Pig还提供了一种非常好的加载和存储HBase数据的方法。此外,Cloudera Impala似乎可以在HBase之上提供基于Hive的大量性能查询。与传统的Hive设置相比,它们声称查询速度提高了45倍。


    为了比较Hive和Hbase,我想回顾一下下面的定义:

    A database designed to handle transactions isn’t designed to handle
    analytics. It isn’t structured to do analytics well. A data warehouse,
    on the other hand, is structured to make analytics fast and easy.

    Hive是建立在Hadoop之上的数据仓库基础架构,适用于长期运行的ETL作业。
    Hbase是一个旨在处理实时交易的数据库


    推荐阅读

      提高3A四核羿龙II游戏配置的性能

      提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

      优化PostgreSQL中的批量更新性能

      优化PostgreSQL中的批量更新性能,数据,表格,在Ubuntu 12.04上使用PG 9.1. 我们目前需要24小时才能运行大量UPDATE数据库上的语句,其形式

      诺基亚威图性能好到哪里

      诺基亚威图性能好到哪里,诺基亚,手机,诺基亚威图性能好到哪里这是一部以前列出的手机。即使当时配置不高,该品牌的手机也不依赖于该功能吸

      魅蓝note6性能参数有哪些

      魅蓝note6性能参数有哪些,摄像头,蓝牙,魅蓝note6性能参数有哪些魅力蓝色Note6最好拍照。电池寿命更长。蓝色Note6使用高通 snapdragon 625

      公共CPU接口类型的详细描述

      公共CPU接口类型的详细描述,,我们知道CPU是电脑的大脑, CPU的处理速度直接决定电脑的性能, 那你知道CPU发展到现在, 都那些CPU接口类型吗.

      FM1和AM3接口将在今年年底前淘汰

      FM1和AM3接口将在今年年底前淘汰,,据来自主板制造商的消息,AMD将开始逐步淘汰Socket FM1和Socket AM3接口从本月开始的处理器,最后消失在第

      Windows8开发版系统高清系统接口图

      Windows8开发版系统高清系统接口图,,今天,微软发布,目前由开发者体验版Windows 8操作系统为整个英文系统,Windows 8带来了一系列新功能,没有折

      国产电脑cpu测试|国产CPU性能

      国产电脑cpu测试|国产CPU性能,,国产CPU性能天玑9000答: 天玑9000更厉害。因为天玑9000是 最新发布的cpu,也是现在的天花板。而麒麟9000是 2