hbase meta表_显示hbase中的表

hbase meta表_显示hbase中的表Meta的必要性:HBase一张表的数据是由多个Region构成,而这些Region是分布在整个集群上的RegionServer上的

Meta的必要性:   

       HBase一张表的数据是由多个Region构成,而这些Region是分布在整个集群上的RegionServer上的。那么客户端在做任何数据操作时,都要确定数据在哪些Region上,然后再根据Region和RegionServer的对应关系,去相应的RegionServer中读取数据。

        hbase:meta就是专门用来存储和Region相关的信息,这里的hbase表示namespace,meta是系统表,因此用全局统一的命名空间;

hbase meta表_显示hbase中的表

        这个表只有一个列簇,即info。并且,HBase保证meta表始终只有一个Region,这是为了确保meta多次操作的原子性(即要不这些操作全成功,要不这些操作一个都没有做)。

Meat表内具体存放哪些信息: 

rowkey:由四个字段拼接起来,分别是 表名-StratRow-TimeStamp-EncodedName。

数据分为4列:

info:regioninfo:EncodedName、RegionName、Region的StartRow、Region的StopRow;

info:seqnumDuringOpen:存储Region打开时的sequenceId;

info:server:存储Region落在哪个RegionServer上;

info:serverstartcode:存储所在的RegionServer启动时间戳;

查看meta表:

hbase meta表_显示hbase中的表

客户端定位Region;

问题:面对海量数据查询时,hbase:meta所在region如何承担数千万的流量?

解决思路:把hbase:meta表的Region信息缓存在HBase客户端;

定位Region:HBase客户端有一个叫做MetaCache的缓存,在调用API时,客户端会先去MetaCache中找到业务Rowkey所在的region,这个region在绝大多数情况下都信息不为空,且调用RPC请求到对应的RegionServer后,且该RegionServer是正确的。

今天的文章hbase meta表_显示hbase中的表分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65701.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注