当前位置:   article > 正文

Hbase和Hive区别和联系

hbase
作者:有点文
链接:https://www.zhihu.com/question/21677041/answer/185664626
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

先放结论:Hbase和Hive在大数据架构中处在不同位置,Hbase主要解决实时数据查询问题,Hive主要解决数据处理和计算问题,一般是配合使用。

一、区别:

  1. Hbase: Hadoop database 的简称,也就是基于Hadoop数据库,是一种NoSQL数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等。
  2. Hive:Hive是Hadoop数据仓库,严格来说,不是数据库,主要是让开发人员能够通过SQL来计算和处理HDFS上的结构化数据,适用于离线的批量数据计算。
  • 通过元数据来描述Hdfs上的结构化文本数据,通俗点来说,就是定义一张表来描述HDFS上的结构化文本,包括各列数据名称,数据类型是什么等,方便我们处理数据,当前很多SQL ON Hadoop的计算引擎均用的是hive的元数据,如Spark SQL、Impala等;
  • 基于第一点,通过SQL来处理和计算HDFS的数据,Hive会将SQL翻译为Mapreduce来处理数据;

二、关系

在大数据架构中,Hive和HBase是协作关系,数据流一般如下图:

  1. 通过ETL工具将数据源抽取到HDFS存储;
  2. 通过Hive清洗、处理和计算原始数据;
  3. HIve清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase
  4. 数据应用从HBase查询数据;

通过hive的存储接口,hiveHbase可以整合使用。 

1hivesql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce 

2hive是面向行存储的数据库。 

3Hive本身不存储和计算数据,它完全依赖于HDFSMapReduceHive中的表纯逻辑。 

4HBase为查询而生的,它通过组织起节点內所有机器的內存,提供一個超大的內存Hash 。

5hbase不是关系型数据库,而是一个hdfs上开发的面向列的分布式数据库,不支持sql 

6hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。 

7hbase是列存储。 

HiveHbase有各自不同的特征:hive是高延迟、结构化和面向分析的,hbase是低延迟、非结构化和面向编程的Hive数据仓库在hadoop上是高延迟的。 

其中HBase位于结构化存储层,Hadoop HDFSHBase提供了高可靠性的底层存储支持,Hadoop MapReduceHBase提供了高性能的计算能力ZookeeperHBase提供了稳定服务和failover机制。



HDFS:Hadoop分布式文件系统

MapReduce:MapReduce分布式编程模型

Yarn:资源分配

Hbase:海量数据库,面向列

Hive:通过SQL操作结构化数据,为用户操作结构化数据提供一个易用的接口。

Flume:日志收集

Kafka:消息队列

Storm:流计算



作者:sheldon wong
链接:https://www.zhihu.com/question/27974418/answer/224652701
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/868140
推荐阅读
相关标签
  

闽ICP备14008679号