HBase相关知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zzw0221/article/details/82261108

一、HBase数据模型

https://www.cnblogs.com/csyuan/p/6543018.html 

二、HBase 物理模型:https://blog.csdn.net/gg782112163/article/details/53523660

a. Table 中所有的行都按照 row key 的字典序进行排列

b. Table 在行的方向上分割为多个 Region

c. Region 是按大小分割的, 每个表开始只有一个 region , 随着数据增多, region 不但增大。 当增大到一个阈值时, region 就会等分两个新的 region, 之后会有越来越多的 region.

d. Region 是Hbase 中分布式存储和负载均衡的最小单元, 不同Region 分布到不同RegionServer上。

e.一个 HRegionServer 管理多个 HRegion.

f. Region 虽然是分布式存储的最小单元, 但并不是存储的最小单元。

g. Region 由一个或多个Store 组成, 每个 store 保存一个 columns family;

h. 每个 store 由一个 memStore 和 0至多个 StoreFile 组成, StoreFile 包含 HFile

i. MemStore 存储在内存中, StoreFile 存储在HDFS上

三、HBase在HDFS上的目录结构:https://blog.bcmeng.com/post/hbase-hdfs.html

namespace--》table--》region--》列簇--》storefile

### /hbase/WALs
被HLog实例管理的WAL文件。

### /hbase/WALs/data-hbase.com,60020,1443159380730
对于每个HregionServer,日志目录中都包含一个对应的子目录

### hbase/WALs/data-hbase.com,60020,1443159380730/data-hbase.com%2C60020%2C1443159380730.1443787240573
在每个子目录下有多个HLog文件(因为日志滚动)

### /hbase/oldWALs
当/hbase/WALs 中的HLog文件被持久化到存储文件中,不再需要日志文件时,它们会被移动到/hbase/oldWALs目录。

### /hbase/oldWALs/data-hbase.com%2C60020%2C1443159381290.1443787452518
具体的oldWALs文件。

### /hbase/hbase.id
集群的唯一ID

### /hbase/hbase.version
集群的文件格式版本信息

### /hbase/corrupt
损坏的日志文件,一般为空

### /hbase/archive/
存储表的归档和快照,HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。
存储表的归档和快照具体目录:
/hbase/archive/data/default/表名/region名/列族名/fd2221d8d1ae4e579c21882f0ec4c5a5

### /hbase/.tmp
当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作。

### /hbase/data
hbase存储数据的核心目录
### /hbase/data/hbase
该目录存储了存储了 HBase 的 namespace、meta 和acl 三个系统级表。
namespace 中存储了 HBase 中的所有 namespace 信息,包括预置的hbase 和 default。acl 则是表的用户权限控制。

- /hbase/data/hbase/meta
- /hbase/data/hbase/namespace
- /hbase/data/hbase/acl

### /hbase/data/default/
该目录存储所有用户数据表
/hbase/data/default/表名

四、HBase的读写流程:https://blog.csdn.net/u011833033/article/details/79773421

写: 

读: 

client-->Zookeeper-->-ROOT-表-->.META.表-->RegionServer-->Region-->client 

  • (1) Client访问Zookeeper,查找-ROOT-表,获取.META.表信息。
  • (2) 从.META.表查找,获取存放目标数据的Region信息,从而找到对应的RegionServer。
  • (3) 通过RegionServer获取需要查找的数据。
  • (4) Regionserver的内存分为MemStore和BlockCache两部分,MemStore主要用于写数据,BlockCache主要用于读数据。读请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并把读的结果放入BlockCache。

猜你喜欢

转载自blog.csdn.net/zzw0221/article/details/82261108
今日推荐