Hbase与Hive相比

时间:2014-02-18 23:37:56

标签: hadoop hive hbase

我试图清楚地了解HBASE。

  

Hive: - 它只是为底层文件创建一个表格式结构   HDFS。这样我们就可以让用户拥有查询能力了   HDFS文件。如果我错了,请纠正我?

     

Hbase-再次,我们创建了一个类似的表结构,但更多   以结构化方式(Column Oriented)再次通过HDFS文件系统。

考虑到他们所从事的工作类型,他们都不是一样的。除了Hive在Mapredeuce上运行。

我们不能在已经存在的HDFS文件上创建Hbase表,这是真的吗?

4 个答案:

答案 0 :(得分:0)

Hive与传统的RDBMS(但不是全部)共享一个非常相似的结构,HQL语法几乎类似于SQL,这对于数据库程序员来说从学习的角度来看是好的,因为HBase完全不同,因为它只能被查询行键的基础。

如果你想在RDBMS中设计一个表,你将按照结构化的方法来定义更多关注属性的列,而在Hbase中,完整的设计集中在数据周围,因此取决于要使用的查询类型我们可以在Hbase中设计一个表,列也是动态的,并且会在运行时更改(NoSQL的核心功能)

答案 1 :(得分:0)

你说不是他们两个都考虑他们所做的工作类型。除了Hive在Mapredeuce上运行。这不是一个简单的想法。因为当执行配置单元查询时,将创建并触发mapreduce作业。根据数据大小和复杂性,它可能会消耗时间,因为对于每个mapreduce作业,JobTracker有一些步骤要做,初始化任务,如地图,合并,shufflesort,减少等。

但是如果我们访问HBase,它会根据指定的ScanGet参数直接查找他们编制索引的数据。意味着它只是充当数据库。

答案 2 :(得分:0)

蜂房

它只是为HDFS中的底层文件创建表格结构。这样我们就可以让用户在现有HDFS文件上具有类似SQL的查询功能 - 典型延迟时间可达数分钟。 但是,为了获得最佳性能,建议将ETL数据转换为Hive的ORC格式。

HBase的

与Hive不同,HBase不是关于在HDFS中对现有数据运行SQL查询。

HBase是严格一致的,分布式的,低延迟的KEY-VALUE STORE。

来自HBase权威指南:

Bigtable和HBase的规范用例是webtable,即网页 在抓取Internet时存储。 行键是页面的反向URL,例如org.hbase.www。有一个 列族存储实际的HTML代码,内容族以及其他 像anchor一样,用于存储传出链接,另一个用于存储入站链接, 另一个是像语言这样的元数据。 对内容系列使用多个版本允许您存储一些较旧的副本 当您想要分析页面更改频率时,HTML非常有用 例。使用的时间戳是从中获取时间的实际时间 抓取网站。

HBase使用HDFS的事实只是一个实现细节:它允许在现有的Hadoop集群上运行HBase,它保证了数据的冗余存储;但它不是任何其他意义上的功能。

  

也是如此,我们不能在已经创建一个Hbase表   现有的HDFS文件?

不,这不是真的。在内部,HBase以HFile格式存储数据。

答案 3 :(得分:0)

Hive和HBase是完全不同的东西

Hive是一种为驻留在HDFS上的数据创建map / reduce作业的方法(可以是文件或HBase) HBase是面向OLTP的键值存储,驻留在HDFS上,可用于Map / Reduce作业

为了让Hive工作,它保存了将HDFS数据映射到表格数据的元数据(因为SQL适用于表格)。

我想同样重要的是要注意,在最近的版本中,Hive正在发展超越SQL方式来编写map / reduce作业,而HortonWorks称之为“stinger initiative”,他们已经添加了专用文件格式(Orc)并导入Hive的性能(例如使用即将推出的Tez执行引擎)在Hadoop上提供SQL(即以相对快速的方式运行存储在Hadoop上的数据的分析查询)