欢迎投稿

今日深度:

hive与hbase,

hive与hbase,


最近在学习和整理大数据hadoop的资料时,突然发现一个简单又复杂的问题:hive与hbase是什么关系?怎么区分?

平时有接触和使用过hive和hbase,hive的话主要用的是阿里云的odps,hbase用的是hdp平台的开源版本,但是还没有

对这两个组件真正的系统的放在一起对比总结过,于是上网查了资料也问了同事,于是在这里再来写点自己的理解。

HIVE: 

首先说说hive,众所周知是一款开源的数据仓库 

     1、hive不是数据库,而是数据仓库,主要依赖于hadoop来实现

     2、底层文件系统是hadoop的hdfs,实现对hdfs上结构化数据的SQL操作HQL,速度较慢

     3、计算引擎是hadoop的mapreduce

     4、依靠存储在其他关系型数据库metastore来对hdfs结构化数据进行管理,实现类似数据库的功能

     5、不具备数据库的一些主键、索引、update操作等特性,但是提供了分区、块索引、SQL等特性

     6、比较适合存储海量的全量(历史+更新)轨迹数据,比对数据进行批量的挖掘、分析等操作

总结一下:hive是基于hadoop实现的数据仓库,适合存储海量全量数据,支持类SQL操作,性能相对较差,数据存储

有一定的限制,不支持更新、索引等事务。适合海量数据的挖掘和分析,通俗一点来说,hive其实就是借助mysql等数据库在

hadoop上层套了一个壳,来实现对hdfs上结构化数据的映射,为上层提供sql服务。

 

 

HBASE:

即Hadoop databse,顾名思义就是一个hadoop的数据库

     1、nosql数据库之一,基于列式存储(列族),适合海量半结构化数据的存储和检索

     2、不支持SQL、适合海量、带时间序列的数据的存储和检索、性能较好

     3、原生支持基于rowkey的一级索引,rowkey按照字典序进行排序

     4、运算执行引擎是hbase自身提供、底层存储基于hdfs


总结一下:hbase是NOSQL数据库的一种,基于分布式列式存储,适合海量半结构化带时间序列的数据的存储和检索,性能较优秀,hbase底层存储依赖于hdfs,与rdbms的区别与其他nosql类似,比如不支持SQL、事务性相对较差等等。

----------------------------------------------------------------------------------------------------------------------------------------------------------

综上,hbase是数据库、hive是数据仓库,而这有很大的区别、也有很多类似的地方比如都属于hadoop生态圈、存储都基于hdfs等。一般来说用hive作为海量结构化全量数据的存储、运算、挖掘、分析;hbase用来作为海量半结构化数据的存储、检索;这二者可以很好协同工作,hive上计算完的结果放在hbase中供检索,也可以将hbase里面的结构化数据和hive相结合,实现对hbase的sql操作等等。

 

转载:https://blog.csdn.net/zx8167107/article/details/79265537

www.htsjk.Com true http://www.htsjk.com/hbase/42381.html NewsArticle hive与hbase, 最近在学习和整理大数据hadoop的资料时,突然发现一个简单又复杂的问题:hive与hbase是什么关系?怎么区分? 平时有接触和使用过hive和hbase,hive的话主要用的是阿里云的...
相关文章
    暂无相关文章
评论暂时关闭