Hive与HBase相比如何?
我有兴趣了解最近发布的( http://mirror.facebook.com/facebook/hive/hadoop-0.17/)Hive在性能方面与HBase的比较。 Hive使用的类似于SQL的接口比我们实现的HBase API要好得多。
很难find关于Hive的很多内容,但是我在Hive站点上发现了这个片段 ,这个片段非常重视HBase(大胆的补充):
Hive基于Hadoop,它是一个批处理系统。 因此,这个系统不能也不能保证查询的低延迟 。 这里的范例是严格的提交工作,并在工作完成时得到通知,而不是实时查询。 因此,不应该将其与像Oracle这样的系统进行比较,这些系统在数据量显着较小的情况下进行分析,但分析的迭代次数更多,迭代之间的响应时间less于几分钟。 对于Hive查询,甚至最小的作业的响应时间可以是大约5-10分钟的时间,对于较大的作业,甚至可能要几个小时。
由于HBase和HyperTable都是关于性能的(仿照Google的BigTable),他们听起来像是肯定会比Hive更快,但是以function和更高的学习曲线为代价(例如,它们没有连接或SQL类似的语法)。
从一个angular度来看,Hive由五个主要组件组成:一个类似于SQL的语法和parsing器,一个查询规划器,一个查询执行引擎,一个元数据存储库和一个列式存储布局。 它的主要焦点是数据仓库式分析工作负载,所以按键的低延迟检索值不是必需的。
HBase有自己的元数据库和列式存储布局。 可以通过HBase表创作HiveQL查询,使HBase能够利用Hive的语法和parsing器,查询规划器和查询执行引擎。 有关更多详细信息,请参阅http://wiki.apache.org/hadoop/Hive/HBaseIntegration 。
Hive是一个分析工具。 就像猪一样,它是专门用于通过利用地图缩减来临时批量处理潜在的大量数据的。 认为terrabytes。 想象一下,试图在关系数据库中这样做…
HBase是基于BigTable的基于列的键值存储。 尽pipe您可以通过HBase运行map reduce作业,但本身不能执行查询。 主要用途是通过按键提取行或者扫描行的范围。 一个主要function是能够跨越行列的范围扫描数据区域。
以我卑微的知识来看,Hive更像猪。 Hive类似SQL,Pig是基于脚本的。 configuration单元似乎更复杂的查询优化和执行引擎,以及要求最终用户需要指定模式参数(分区等)。 两者都打算处理文本文件或sequenceFiles。
HBase用于键值数据存储和检索…您可以扫描或过滤这些键值对(行)。 您不能对(键值)行进行查询。
从最新的Hive发行版开始, Hive和HBase现在已经被整合 ,很多已经发生了变化,需要一个小小的更新。 这意味着Hive可以用作HBase数据存储的查询层。 现在,如果人们正在寻找替代的HBase接口,Pig也提供了一个非常好的加载和存储HBase数据的方法 。 此外,看起来Cloudera Impala可能会在HBase基础上提供基于Hive的查询。 与传统的Hive设置相比,它们的查询速度提高了45倍。
Hive和HBase被用于不同的目的 。
蜂巢:
优点:
- Apache Hive是一个build立在Hadoop之上的数据仓库基础架构 。
- 它允许查询存储在HDFS上的数据,通过HQL (一种类似SQL的语言)进行分析,该语言将被转换为一系列Map Reduce Jobs
- 它只在Hadoop上运行批处理 。
- 它符合JDBC规范 ,它也与现有的基于SQL的工具集成在一起
- Hive支持分区
- 它支持对一段时间内收集的数据进行分析查询
缺点:
- 它目前不支持更新语句
- 应该提供一个预定义的模式来将文件和目录映射到列中
HBase的:
优点:
- 可扩展的分布式数据库 ,支持大型表的结构化数据存储
- 它提供对大数据的随机实时读/写访问 。 HBase操作在其数据库上实时运行,而不是在MapReduce作业中运行
- 它支持分区到表,表又进一步拆分成列族
- 使用Hadoop 横向扩展大量数据
- 在存储或检索时提供基于密钥的数据访问。 它支持添加或更新行。
- 支持数据的翻译。
缺点:
- HBase查询是用需要学习的自定义语言编写的
- HBase不完全兼容ACID
- 它不能用于复杂的访问模式(如连接)
- 在进行大批量MapReduce时,它也不是HDFS的完全替代品
概要:
Hive可以用于分析查询,而HBase则用于实时查询。 数据甚至可以从Hive读写到HBase,然后再回来。
为了比较Hive和Hbase,我想回顾下面的定义:
旨在处理事务的数据库不是为了处理分析而devise的。 它没有结构化分析。 另一方面,数据仓库的结构使分析变得快速和简单。
Hive是基于Hadoop构build的数据仓库基础架构,适用于长时间运行的ETL作业。 Hbase是一个旨在处理实时交易的数据库
- 创buildini文件,在PHP中写入值
- Rails控制台:重新加载! 没有反映模型文件的变化? 有什么可能的原因?
- .NETconfiguration文件configSource在应用程序目录文件夹之外
- “没有未过期的configuration文件发现包含任何钥匙串的签名证书”恐怖
- <context:annotation-config> vs <context:component-scan>之间的区别
- Xcode:不在任何开发团队
- Spring Boot – 如何configuration端口
- Provisioning Profiles菜单项从Xcode 5中丢失
- XAMPP 1.8.2-2 Apache Web Server不会启动,总是立即停止