列存储库Hbase入门基础

2018-11-27  本文已影响0人  机器不能学习

接触hbase几个月,都没能梳理梳理,今天又重新回顾梳理一番。

首先Hbase是一个NoSql的数据库。其特点可以存储松散数据类型,其存储的数据类型可以近似认为是一种关系映射(但又不是简单的映射),所以有人说hbase是多个多级的hashmap组成。它还可以动态的改变表的结构,增加列、保留版本等。

关键词

首先我们要知道hbase的专有名词

CF(Column Family)

也叫做列族,一个列族中可以有多个列,且这些列可以动态的添加。
其结构类似于{name=>'zhangsan',age=>'12',sex=>'man',timestamp=1543319294288},前面的key也叫做Qualifier,后面是key所对应的值。timestamp是时间戳,一般默认每个单元格有3个时间戳的版本数据,这个值一般是系统自动生成,对于相同Qualifier的数据会保存三个版本。

key-row

key-row作为CF的'key'值,每一个key-row都对应着表中每个CF。

master

Hbase Master(HMaster)的作用主要是对HRegion的维护,管理用户对表的CRUD操作。
其维护工作主要包括:

HRegion

当表超过了设置值时,Hbase会将表横向划分为不同的区域。在物理存储上来说,每个区域就是一个HRegion。一个HRegion会保存一段连续的数据。其数据范围是(开始key-row->结束key-row)

HRegion Server

一般一台机器运行一个HRegion Server。Server包括了存储部分和日志部分。
对于储存部分,一个HRegion Server来说,可以存储多个HRegion。每个HRegion中有一个MemStore和多个StoreFile(Hfile)。memStore是一个内存的实体,当数据写入时如果超过了这个内存的大小,会倾斜到具体的Hfile中。

zookeeper

大多数分布式数据库都依赖zookeeper来实现HA。Hbase也不例外。zookeeper是来协调各个机器的关系的,在hbase中zk会去协调HBase Master和Hbase Server的关系,保障了只有一个Master处于运行状态,并负责Server的注册。在zookerper端会储存一张ROOT表和META表,每个ROOT表存储的是每个元数据相对应的多个HRegion,META表对应的是每个HRegion对应的server。所以用户请求到来时会先到zk,zk会找到想对应的server。

图片.png

数据模型

设计规则

因为Hbase本身的效率很大部分取决于使用者的设计。所以概括一下应该有的设计规则

上一篇下一篇

猜你喜欢

热点阅读