今天的面试题来自e代驾:Hive跟HBase的区别是什么?
问题分析
考察对Hive,HBase大数据相关组件的了解程度,考察基础,可以从Hive,HBase概念延伸到区别然后结合实际做一个回答。
核心问题回答
Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类似于SQL查询用于解决海量结构化日志的数据统计(海量的结构化数据的运算分析),本质为将HiveSQL转化成MapReduce程序或者Spark程序(分布式运算框架)。 Hive的元数据默认存储在自带的derby数据库中,推荐使用MySQL,而原始数据一般储存在HDFS中。 HBase:HBase是一个高可靠性、高性能(快)、面向列、可伸缩的分布式数据库系统,HBase支持单行事务,数据存储在HDFS中。 适用于单表数据超千万,并发量高,数据分析需求弱,无需过于灵活和实时,与Hadoop一样,HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。 区别:
Hive和HBase是两种基于Hadoop的不同技术:
Hive是一种类SQL的引擎,并且运行MapReduce任务,HBase是一种在Hadoop之上的NoSQL的Key/Value数据库,只支持简单的行列操作。当然,这两种工具是可以同时使用的。Hive可以用来进行统计查询,HBase可以用来进行快速的实时查询,数据也可以从Hive写到HBase,设置再从HBase写回Hive。
问题扩展
类似的数据库有很多,要清楚他们之间的区别,比如MySQL和HBase,Redis和HBase等等,要清楚他们的核心功能以及特性异同。
综合项目使用
知道在哪种场景下,使用哪种技术。当所存储数据需要快速插入查询时,使用HBase。 当数据需要大量聚合运算,计算分析结果时,使用hive存储,所以Hive是数仓,etl的常用工具。 大家如果想进行更深入的了解和学习,请关注勾叔谈大数据参与更多互动。