一、定义
Hive
HBase
Apache HBase 是一个开源的、分布式的、版本化的、非关系型的数据库。
二、区别
使用方面
hive
构建在hadoop平台之上的数据仓库
数据是存放在hdfs上的
数据查询最终被转化为MapReduce执行
hbase
基于hdfs 平台的nosql的数据库
在生产环境中,HBase 一般运行在 HDFS 上,以 HDFS 作为基础的存储设施,天生高可用
基于数据库本身的实时查询,而不是去运行MapReduce
特点
hive
方便熟悉SQL的人,可以快速上手
默认的计算引擎MapReduce,所以面临了查询时间比较长的问题
底层的计算引擎可以更换为spark/Tez
hive中的表纯逻辑表,只是表的定义,本身是不存储的、不计算的,完全依赖于hdfs/MapReduce
hbase
本身不支持SQL的,需要集成Phoenix/hive才可以支持SQL
有自己的一级索引,rowkey,基于一级索引进行数据查询,所以查询速度是比较快的;底层基于scan进行数据扫描,而不是用MapReduce
hbase中的表都是物理表,有独立的物理数据结构,查询的时候可以把数据加载到内存,提升查询效率
局限性
hive
目前仅支持ORC文件格式的数据更新操作,前提是开启事务支持
hive的运行依赖hdfs进行数据的存储,默认依赖MapReduce进行数据计算
hbase
本身不支持SQL查询,需要通过Phoenix实现SQL查询
hbase运行是需要依赖zookeeper(提供协调服务,配置服务,维护元数据,命名空间的维护),依赖于hdfs存储数据的
应用场景
hive
主要用于构建基于hadoop平台的数据仓库,离线处理海量数据
hive是提供完整的SQL实现,用于历史数据的分析、挖掘
hbase
适用于大数据的实时查询,还有海量数据的存储
hbase当做一个近实时数据库,支持线上业务的实时查询