一个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))
分享到:
相关推荐
region中存储的是大量的rowkey数据 ,当region中的数据条数过多的时候,直接影响查询效率.当region过大的时候.hbase会拆分region , 这也是Hbase的一个优点 . HBase的region split策略一共有以下几种: 1、...
hbase-region-inspector, HBase区域统计信息的可视化仪表板 hbase-region-inspectorHBase区域统计信息的可视化仪表板。 用法下载与HBase集群版本匹配的可执行二进制插件,添加execute权限,并使用以下命令行参数启动...
HBASERegion数量增多问题描述及解决方案.docx
本文来自于36大数据,这篇文章将会对这些细节进行基本的说明,一方面可以让大家对HBase中Region自动切分有更加深入的理解,另一方面如果想实现类似的功能也可以参考HBase的实现方案。Region自动切分是HBase能够拥有...
2. 请简述HBase中数据写入最后导致Region分裂的全过程 3. 如果设计一个笔记的表,表中要求有笔记的属性和笔记的内容,怎么做 4. HBase部署时如何指定多个zookeeper 5. HBase shell是基于哪种JVM运行的语言实现的 6. ...
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 region拆分和合并
这是本人使用hbase shell的部分经验总结,一般的shell使用全部包括了。 版本,压缩,region等需求,以及使用普通shell使用hbase shell
在 Hbase 中,表的 RowKey 按照字典排序, Region 按照 RowKey 设置 split point 进行 shard, 通过这种方式实现的全局、分布式索引. 成为了其成功的最大的砝码。 然而单一的通过 RowKey 检索数据的方式,不再满足更多...
在大数据热潮中,推出了NoSQL数据库,这种天生就为分布式存储而设计的技术,尤其以Apache HBase为代表,占领海量数据存储技术的大半壁江山。本教视从实战角度出来,向学员们手把手掌握HBase使用精髓,让学员达到如下...
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-packet-inspector (HPI)是用于分析HBase RegionServers网络流量的命令行工具。 HPI读取tcpdump文件或捕获网络接口的实时数据包流,以提取有关客户端请求和响应的信息。 您可以对其...
网上的HBase书都比较老了,这是目前为止最新版本的HBase电子书。 Part I: Core Concepts Chapter 1: Fundamental Characteristics Chapter 2: Apache HBase and HDFS Chapter 3: Application Characteristics...
HBase中有三个主要组件:客户端库、一台主服务器、多台region服务器。可以动态地增加和移动region服务器,以适应不断变化的负载。主服务器主要负责利用Apache Zookeeper为region服务器分配region,Apache Zookeeper...
Q:如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中 A:加上选项 -fixAssignments 解决 Q:如果一个region在META表中,并且在regionserver的online region集合中,但是...
HBase的特性与生态:自动分区、LSM Tree、存储...全新的HBase2.0版本新功能:小对象存储MOB、读写链路Off-heap 、Region Replica 、In Memory Compaction 、Assignment MangerV2 、其他;HBase未来规划。 主要章节:
Region中包含HLOG、Store。若一张表有几个列族,就有几个Store。Store中有多个MemStore及StoreFile。StoreFile是对HFile的封装。StoreFile真正存储在HDFS上。 所以写数据时先往HLog上写一份,再往MemStore上写一份。...
默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。 一种可以加快批量写入速度的方法是通过预先创建一些...
7、修改vim regionservers (指定regionserver) Node11 node12 node13 8、指定 standby 的hbase的副节点,注意:该文件不存在,需要创建 vim backup-masters Node12 9、拷贝hbase到其他节点或机器 Cd /root/...