导语
本篇文章为大家带来HBase面试指南,题目大部分来自于网络上,有小部分是来自于工作中的总结,每个题目会给出一个参考答案。
为什么考察HBase?
作为一个高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统,HBase在大数据生态系统中占据重要的地位。我们必须要了解其基本原理和概念,一方面可以对数据分析工作中排查问题有比较大的帮助,另一方面方便我们与他人沟通交流。
精选题型
1HbaseS的特点是什么?
1.hbase是一个分布式的,基于列式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理。
2.hbase适合存储半结构化或非结构化的数据,比如数据结构字段不够确定或者杂乱无章很难按照一个概念去抽取的数据。
3.hbase的存储效率比较高,为null的数据不会被存储。
4.hbase的表包含rowKey、列族和列,存储数据的最小单元是单元格,单元格包含数据及其对应的写入时间戳,新写入数据时,附带写入时间戳,可以查询到之前写入的多个版本。
5.hbase是主从结构,hmaster作为主节点,hregionServer作为从节点。
2Hbase的数据存储模型
答:Hbase中的每张表都通过行键(rowkey)按照一定的范围被分割成多个子表(HRegion),默认一个HRegion超过M就要被分割成两个,由HRegionServer管理,管理哪些HRegion由Hmaster分配。HRegion存取一个子表时,会创建一个HRegion对象,然后对表的每个列族(ColumnFamily)创建一个store实例,每个store都会有0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile,HFile就是实际的存储文件;一个HRegion还拥有一个MemStore实例。
3描述下HBase的架构?
答:HBase遵守主从架构的技术,由一个主HMaster和若干个从HRegionServer组成。HBase中的一张表的数据由若干个HRegion组成,也就是说每一个HRegion负责管理一张表中的一段数据,HRegion都是分布式的存在于HRegionServer中,所以说HRegion是HBase表中数据分布式存储的单位。那么一个HRegion中又是由若干个columnfamily的数据组成;在HRegion中每个columnfamily数据由一个store管理,每个store包含了一个memorystore和若干个HFile组成,HFile的数据最终会落地到HDFS文件中,所以说HBase依赖HDFS。
在HBase中还有一部分元数据信息,比如HMaster的状态信息、HRegionServer的状态信息以及HRegion的状态信息等,这些信息都是存储在zookeeper集群中。请看下图便于理解。
4描述Hbase中scan和get的功能以及实现的异同
答:Get的功能是精准查找,按指定RowKey获取唯一一条记录。Scan的功能是范围查找,按指定的条件获取一批记录。实际上它们的实现是一样的,get操作就是一种特殊的scan(begin和end相同的scan操作)。而且hbase读数据的操作都是scan,代码级别实现的是scan,并没有特别针对get的操作。
5请详细描述Hbase中一个Cell的结构?
答:cell:由{rowkey,column(=family+label),version}唯一确定的单元,cell中的数据是没有类型的,全部是字节码形式存储。
6简述