使用上区别
1.基于构建在Hadoop平台上的一个数据仓库工具
2.数据存放在HDFS之上
3.将sql语句转换为MapReduce任务进行运行
HBase
1.基于HDFS平台的NoSQL数据库
2.数据存放在HDFS之上
3.基于数据库本身的实时查询,而非运行MapReduce.
特点区别
Hive
Hive帮助熟悉SQL的人运行MapReduce任务。因为它是JDBC兼容的。
Hive默认计算引擎是MapReduce,所以查询时间比较长
Hive底层计算引擎也可以更换为Spark/Tez
Hive中表是纯逻辑表,只是表的定义,本身不存储和计算,完全依赖HDFS/MapReduce
HBase
1.本身不支持sql,需要通过集成Phoenix/Hive才支持sql
2.Hbase基于一级索引Rowkey进行数据查询,所以查询速度比较快
3.Hbase底层基于scan进行数据扫描,而非基于MapReduce
4.Hbase中的表是物理表,有独立的物理数据结构,查询可以将数据加载到内存,提升查询效率
局限性:
Hive日前仅支持orcFile文件格式的更新操作,还需要提前开启事务支持
Hive计算需要依赖mapReduce
Hbase 不支持SQl,运行依赖zookeeper提供配置服务,维护元数据,命名空间服务。
应用场景
Hive
主要离线数仓,处理海量数据
完整sql实现,一般用于历史数据的分析,挖掘
HBase
适合大数据的实时查询,海量数据的存储
能支持线上业务的实时查询。