标签:info 2.0 region b84a96d0e074272569b6fa79946e79df meta user 版本 hbase x00
客户端发送查询命令
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信息,到相应的位置查询数据
标签:info,2.0,region,b84a96d0e074272569b6fa79946e79df,meta,user,版本,hbase,x00 来源: https://www.cnblogs.com/kyle-blog/p/14288182.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。