**鄙人的新书《elasticsearch7完全开发指南》,欢迎订阅!**
-----
https://wenku.baidu.com/view/8ff2ce94591b6bd97f192279168884868762b8e7
**《kibana权威指南》**
----
https://wenku.baidu.com/view/24cfee1ce43a580216fc700abb68a98270feac21
Hbase的顶级存储结构是表,Hbase的表可以理解成是行的集合,行(记录)是列族的集合,列族是列的集合。这里有重点介绍几个容易混爻的几个感念!
HBase采用Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由一下类型节点组成:HMaster节点、HRegionServer节点、ZooKeeper集群,而在底层,
它将数据存储于HDFS中,因而涉及到HDFS的NameNode、DataNode等,总体结构如下:
其中HMaster节点用于:
管理HRegionServer,实现其负载均衡。
管理和分配HRegion,比如在HRegion split时分配新的HRegion;
在HRegionServer退出时迁移其内的HRegion到其他HRegionServer上。实现DDL操作(Data Definition Language,namespace和table的增删改,column familiy的增删改等)。
管理namespace和table的元数据(实际存储在HDFS上)。
权限控制(ACL)。
HRegion
假设我们有100亿条数据,这么大的数据无法存储到一台机器上,这时hbase水平切分成不同的分片,分片就是region,一个regionServer包含若干region,由于是水平切分,一条完整的数据一定是只属于一个region,其实hbase底层存存储结构是key-value形式的,key就是row-key!
HBase使用RowKey将表水平切割成多个HRegion,从HMaster的角度,每个HRegion都纪录了它的StartKey和EndKey(第一个HRegion的StartKey为空,
最后一个HRegion的EndKey为空),由于RowKey是排序的,因而Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。HRegion由HMaster分
配到相应的HRegionServer中,然后由HRegionServer负责HRegion的启动和管理,和Client的通信,负责数据的读(使用HDFS)。
列族column family<