文章目录
前言
HBase作为大数据常用的数据库组件之一,面试中也经常会被问到。
秋招高频考点
1.hbase的特点
HBASE可以理解成是一张大表(10亿级别行,百万级别列),面向列的数据存储结构。Hbase的数据是存储在HDFS上的,可实时读写,具有分布式,高可靠,高性能的特点,可伸缩,主要用于存储非结构化和半结构化的数据。HBASE比较消耗内存,可顺序读写磁盘文件。
2.hbase读流程
-
客户端从ZK获取元数据表所在的regionServer节点信息。
-
客户端访问对应节点,获得region所在的regionServer节点信息。
-
客户端访问具体的reion所在regionServer,找到对应的region及store
-
首先从memstore读,读到就返回,读不到就去blockcache读,找不到就去HFile遍历
-
若在HFile找到了,就把数据缓存到blockcache中。
3.hbase的rowkey设计:
长度原则;散列原则;唯一原则
长度原则:rowkey是一个二进制码流,一般越短越好,不要超过16个字节。
散列原则:hash;加盐(随机值);字符串倒置等方法
唯一原则:rowkey是按字典序排序的,要充分利用排序特点,将经常读取的数据存到一块。
4.hbase的热点数据问题及预分区
先根据数据规模做预分区,然后再设计row