码迷,mamicode.com
首页 > 其他好文 > 详细

详解hbase的寻址过程(0.96版本以后,2.0版本以前)

时间:2021-01-18 11:09:35      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:encode   结构   启动   dna   src   命令   lazy   ima   during   

技术图片

客户端发送查询命令

scan ‘user‘, {COLUMNS => ‘base_info‘, STARTROW => ‘rk1‘, ENDROW => ‘rk3‘}

寻址过程

1. 客户端请求zk,获取meta表所在位置

2. zk返回节点位置(假设在hadoop01节点)

3. 客户端访问hadoop01节点上的meta表

meta表存放的就是region的元数据信息。meta表格式如下:

ROW                                                           COLUMN+CELL
user,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:regioninfo, timestamp=1577522584346, value={ENCODED => b84a96d0e074272569b6fa79946e79df, NAME => ‘user,,1577522582939.b84a96d0e074272569b6fa79946e79df.‘, STARTKEY => ‘‘, ENDKEY => ‘‘}

user,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:seqnumDuringOpen, timestamp=1583992456271, value=\x00\x00\x00\x00\x00\x00\x00[

user,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:server, timestamp=1583992456271, value=hadoop01:16020

user,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:serverstartcode, timestamp=1583992456271, value=1583992398626

ROW

hbase:meta表的一个rowkey就对应一个region

hbase:meta 表的 rowkey 结构如下:

TableName,StartKey,Timestamp.EncodedName.
  • TableName:表名称
  • StartKey:表示当前 table 的 region 中存储的第一个 rowkey。如果这个地方为空的话,表明这是 table 的第一个 region。并且如果一个 region 中 StartKey 和 EndKey 都为空的话,表明这个 table 只有一个 region;比如上面的user表就只有一个region( STARTKEY => ‘‘, ENDKEY => ‘‘)。
  • Timestamp:region 创建的时间戳
  • EncodedName:TableName,StartKey,Timestamp字符串的MD5 Hex值。

COLUMN+CELL

每一行数据又分为4列,分别是info:regioninfo、info:seqnumDuringOpen、info:server、info:serverstartcode。

info:regioninfo:该列对应的 Value 主要存储4个信息,即EncodedName、RegionName、Region的StartRow、Region的EndRow。

info:seqnumDuringOpen:该列对应的 Value 主要存储Region打开时的sequenceId。

info:server:该列对应的 Value 主要存储Region落在哪个RegionServer上。

info:serverstartcode:该列对应的 Value 主要存储所在RegionServer的启动Timestamp。

因此,通过meta表,客户端就知道所要查询的数据放在哪个RegionServer上的哪个region。本例子返回的就是RegionServer1中的region1。

4. 根据返回的节点信息和region信息,到相应的位置查询数据

详解hbase的寻址过程(0.96版本以后,2.0版本以前)

标签:encode   结构   启动   dna   src   命令   lazy   ima   during   

原文地址:https://www.cnblogs.com/kyle-blog/p/14288182.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!