HBase的简单介绍,寻址过程,读写过程


HBase是列族数据库,主要由,表,行键,列族,列标识,值,时间戳 组成,

 

      表       其中HBase 主要底层存储依赖与hdfs,可以在HDFS中看到每个表名都作为一个独立的目录结构

      行       每一行都已行键作为唯一表示,是不可分割的字节数组,在HBase内部主要以行键由低到高存储在表中

      列族       一些列的集合,用户在插入数据的时候必须确定列族,在内部以字符串格式进行存储

      列标识     用以表示指定的列, 存储方式二进制

      值       在HBase 中 以指定的  列族 列表示,行键 来确定唯一的 单元格, 值以二进制方式存储,里面可保存多个版本,最新的数据排在最前面

      时间戳     默认情况下 每一个单元格插入数据时,都会用时间戳进行标识,若时间戳未指定,则插入最新数据,查询时也是如此,其中默认保存3个版本数据

 

      寻址过程

      在上面说了,每一行 都以行键(RowKey)排序, 如果数据量较大,这些数据就会在 行的方向上进行划分

      划分为多个Region,当表中的Region 越来越多时,多到无法存储在一台机器上时, Master主服务器就会把不同的Region分配到不同的Region 的服务器上

      但RowKey相同的Region不会被拆分到 不同Region 服务器上,通常每个Region 服务器会放置10~1000个Region, 当查询数据时,将开始Region定位

      每个Region 都这三个要素组成,Region 所属的表,第一行,最后一行 每个Region 都有个RegionID来标识其唯一性

      Region 标识符表示为 表名+开始行键+RegionID

      Meta表 中存了 Region 与 Region标识符之间的对应关系,可以用scan命令查看Mate表的结构,当数据表特别大时,mate也需要分区,记录Region

         

      Region 定位,

    客户端,通过Zookeeper 获取Meta表分区存储的地址,所需的行键Region信息,然后从Region 服务器上找到所需的数据。一般获取信息后会缓存,使用户不必从ZooKeeper 开始寻址。

 

      读写过程

        Region服务器主要 有  HLog 和Region 块组成,HLog 主要,记录Region 的操作日志,

    Region 对象主要由多个Store 组成 每个store对应当前分区的 一个列族,并且管理一块内存,即MemStroe

    当MemStore 中的数据达到一定条件,会写入StoreFile文件中,每个Store 包含若干StoreFile 文件 StoreFile 对应HDFS中,Hfile文件

   

MemStore    HBase 将数据缓存在其中,持久化到HDFS中完成排序,在顺序写入HDFS中

Store 随着数据量增加 storefile文件数量也在增加,当数量达到一定程度的时候,会合并成一个大的StoreFile文件,随着文件不断合并,Region也会不断变大这样会促使Region进行分裂

      Region 一个父Region 会分裂成两个子 Region  会被Master 分配到相应的Region 服务器上

      Hlog 如果MemStore 上数据丢失 可以从HLog上恢复

     

      写入过程,

1.客户端访问ZookKeeper 从Mate表中得到写入数据对应的Region信息,和相应的Region 服务器

2客户端访问 Region服务器,将数据写入HLog和MemStore中,当MemStore 达到阈值后 将数据写入 StoreFile中,再在HLog中打上一个标记,表示已经写入
3.当多个StoreFile文件达到阈值后 触发Store.compact()将文件进行合并.

 

读取过程

1.客户端访问Zookeeper 从Mate表中读取Region信息对应的服务器

      2.客户端向对应的Region服务器发送读数据的请求,Region接受请求后 从MemStore中查找数据,若没有,再从StoreFile读取,然后再将数据返回给客户端。

 

 

本内容总结于 上课老师所讲内容,以及摘录自NoSql数据库原理及应用  有错误之处,大家指正批评。

     


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM