Hive 与 HBase 的区别
一、使用方面的区别
Hive
1)Hive 是一个构建在 Hadoop 平台上的数据仓库。
2)Hive 数据存放在 HDFS 之上。
3)Hive 数据查询最终被转化为 MapReduce。
HBase
1)HBase 是一个基于 HDFS 平台的 NoSQL 数据库。
2)HBase 数据存储在 HDFS 之上。
3)HBase 是基于数据库本身的实时查询,而非运行 MapReduce
二、特点的区别
Hive
1)Hive 方便熟悉 SQL 的人,快速上手大数据分析。
2)Hive 默认计算引擎是 MapReduce,所以查询时间比较长。
3)Hive 底层计算引擎也可以更换为 Spark/Tez。
4)Hive 中的表是纯逻辑表,只是表的定义,本身不存储和计算,完全依赖 HDFS/MapReduce
HBase
1)HBase 本身不支持 SQL,需要通过集成 Phoenix/Hive 才支持 SQL。
2)HBase 基于一级索引 Rowkey 进行数据查询,所以查询速度比较快。
3)HBase 底层基于 Scan 进行数据扫描,而非基于 MapReduce
4)HBase 中的表是物理表,有独立的物理数据结构,查询时可以将数据加载到内存,提升后
续的查询效率
三、局限性的区别
Hive
1)Hive 目前仅支持 ORCFile 文件格式的数据更新操作,还需要提前开启事务支持。
2)Hive 的运行依赖 HDFS 进行数据存储,默认依赖 MapReduce 进行数据计算。
HBase
1)HBase 本身不支持 SQL 查询功能,需要通过与 Phoenix 集成实现。
2)HBase 的运行依赖 Zookeeper 提供协调服务(配置服务、维护元数据、命名空间服务),依
赖 HDFS 数据存储。
四、应用场景的区别
Hive
1)Hive 主要用于构建基于 Hadoop 平台的数据仓库,离线处理海量数据。
2)Hive 提供完整的 SQL 实现,一般用于历史数据的分析、挖掘。
HBase
1)HBase 适合用了大数据的实时查询、海量数据的存储。
2)HBase 是近实时数据库,支持线上业务的实时查询。