`

HBase中 Region类

阅读更多
一个Region在HBase中用一个HRegionInfo表示。该类定义在文件HRegionInfo.java中。一个Region包括如下几个重要属性:
// 代表Region的开始Key
byte [] startKey = HConstants.EMPTY_BYTE_ARRAY;

// 代表Region的结束Key
byte [] endKey = HConstants.EMPTY_BYTE_ARRAY;
   
// 该Region的id
long regionId = -1;

// 该Region的名字
byte [] regionName = HConstants.EMPTY_BYTE_ARRAY;

// 所在Table的表描述符
HTableDescriptor tableDesc = null;

开始Key和结束Key对应该Region中包含了哪些Row。RegionId用于唯一的标识该Region。


1. Region名字的组成:table的名字,开始Key,RegionId。函数
    createRegionName(byte[] tableName, byte[] startKey, byte[] id) 用于生产region名字。
   由于Region的名字中包含了table的名字,HRegionInfo提供了一个getTableNameFromRegionName
   用于从Region名字中返回table名字。

2. 为便于Logging,HRegionInfo类包含了字段regionNameStr,返回用于logging的Region name字符串。

3. 该Region是否是Root Region?
   tableDesc.isRootRegion() 为true表明该Region是Root Region。
   
4. 该Region是否是MetaRegion?
    tableDesc.isMetaRegion()为true表明该Region是Meta region。
   
HRegionInfo其它的字段:
split:表明该region是否已经split了,并且包含daughters。
offLine: 表明该region是否是offline的

HRegionInfo提供了一个函数encodeRegionName,对Region名字进行编码,在很多地方使用了这个编码
结果。编码采用了JenkinsHash,见http://burtleburtle.net/bob/hash/doobs.html
int encodeRegionName的实现(byte[] regionName):
    Math.abs(JenkinsHash.hash(regionName, regionName.length, 0))
分享到:
评论

相关推荐

    Hbase的region合并与拆分

    region中存储的是大量的rowkey数据 ,当region中的数据条数过多的时候,直接影响查询效率.当region过大的时候.hbase会拆分region , 这也是Hbase的一个优点 . HBase的region split策略一共有以下几种: 1、...

    hbase-region-inspector, HBase区域统计信息的可视化仪表板.zip

    hbase-region-inspector, HBase区域统计信息的可视化仪表板 hbase-region-inspectorHBase区域统计信息的可视化仪表板。 用法下载与HBase集群版本匹配的可执行二进制插件,添加execute权限,并使用以下命令行参数启动...

    HBASERegion数量增多问题描述及解决方案.docx

    HBASERegion数量增多问题描述及解决方案.docx

    HBaseRegion自动切分的所有细节都在这里了

    本文来自于36大数据,这篇文章将会对这些细节进行基本的说明,一方面可以让大家对HBase中Region自动切分有更加深入的理解,另一方面如果想实现类似的功能也可以参考HBase的实现方案。Region自动切分是HBase能够拥有...

    java大数据作业_3HBase

    2. 请简述HBase中数据写入最后导致Region分裂的全过程 3. 如果设计一个笔记的表,表中要求有笔记的属性和笔记的内容,怎么做 4. HBase部署时如何指定多个zookeeper 5. HBase shell是基于哪种JVM运行的语言实现的 6. ...

    Hbase中文文档

    3.1. 从HBase 0.20.x or 0.89.x 升级到 HBase 0.90.x 3.2. 从 0.90.x 到 0.92.x 4. The HBase Shell 4.1. 使用脚本 4.2. Shell 技巧 5. 数据模型 5.1. 概念视图 5.2. 物理视图 5.3. 表 5.4. 行 5.5. 列族 5.6. Cells...

    HBASE学习分享

    HBASE的主要原理解读:包括HBase 读写逻辑、HBase region拆分和合并

    hbase shell使用文档

    这是本人使用hbase shell的部分经验总结,一般的shell使用全部包括了。 版本,压缩,region等需求,以及使用普通shell使用hbase shell

    Hbase 二级索引方案

    在 Hbase 中,表的 RowKey 按照字典排序, Region 按照 RowKey 设置 split point 进行 shard, 通过这种方式实现的全局、分布式索引. 成为了其成功的最大的砝码。 然而单一的通过 RowKey 检索数据的方式,不再满足更多...

    HBase视频教程下载|基于微博数据应用的HBase实战开发

    在大数据热潮中,推出了NoSQL数据库,这种天生就为分布式存储而设计的技术,尤其以Apache HBase为代表,占领海量数据存储技术的大半壁江山。本教视从实战角度出来,向学员们手把手掌握HBase使用精髓,让学员达到如下...

    HBase.Design.Patterns

    you will get a better idea of typical storage patterns, application design templates, HBase explorer in multiple scenarios with minimum effort, and reading data from multiple region servers. ...

    hbase-packet-inspector:分析HBase RegionServers的网络流量

    hbase-packet-inspector hbase-packet-inspector (HPI)是用于分析HBase RegionServers网络流量的命令行工具。 HPI读取tcpdump文件或捕获网络接口的实时数据包流,以提取有关客户端请求和响应的信息。 您可以对其...

    Apache HBase Primer

    网上的HBase书都比较老了,这是目前为止最新版本的HBase电子书。 Part I: Core Concepts Chapter 1: Fundamental Characteristics Chapter 2: Apache HBase and HDFS Chapter 3: Application Characteristics...

    HBase权威中文指南

    HBase中有三个主要组件:客户端库、一台主服务器、多台region服务器。可以动态地增加和移动region服务器,以适应不断变化的负载。主服务器主要负责利用Apache Zookeeper为region服务器分配region,Apache Zookeeper...

    hbase-hbck2-1.0.0.jar

    Q:如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中 A:加上选项 -fixAssignments 解决 Q:如果一个region在META表中,并且在regionserver的online region集合中,但是...

    HBase内核及能力.pdf

    HBase的特性与生态:自动分区、LSM Tree、存储...全新的HBase2.0版本新功能:小对象存储MOB、读写链路Off-heap 、Region Replica 、In Memory Compaction 、Assignment MangerV2 、其他;HBase未来规划。 主要章节:

    分布式数据库HBase深入使用

    Region中包含HLOG、Store。若一张表有几个列族,就有几个Store。Store中有多个MemStore及StoreFile。StoreFile是对HFile的封装。StoreFile真正存储在HDFS上。 所以写数据时先往HLog上写一份,再往MemStore上写一份。...

    Hbase性能测试详细设计文档及用例q

    默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。 一种可以加快批量写入速度的方法是通过预先创建一些...

    HBase的安装与配置

    7、修改vim regionservers (指定regionserver) Node11 node12 node13 8、指定 standby 的hbase的副节点,注意:该文件不存在,需要创建 vim backup-masters Node12 9、拷贝hbase到其他节点或机器 Cd /root/...

Global site tag (gtag.js) - Google Analytics