首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
controller
uri
solr
case
stream
javascript
bitmap
char
schema
main
java
get
object
select
replace
testing
require
int
window
format
hashcode
match
数组
grid
random
header
timezone
metadata
list
bash
flutter
yaml
loops
iostream
php5
runtime
uml
scala
client
httpclient
tree
erlang
emoji
version
vba
filter
email
future
hashset
config
typescript
datetime
input
tags
less
express
sum
default
io
golang
python2
triggers
buffer
foreach
rsa
join
function
dagger
blob
netty
cpython
string
perl
import
actionscrip
usb
jar
python
request
当前位置:
开发笔记
>
编程语言
> 正文
三、HbaseRegion的定位
作者:jizi456 | 来源:互联网 | 2023-09-04 18:31
Hbas
一、早期架构
1、关于Region的查找,早期的设计(0.96.0)之前是被称为三层查询
img
Region:就是你要查找的数据所在的Region,这个不多解释。
-ROOT-:是一张存储.META.表的表。.META.可以有很多张,而-ROOT-就是存储了.META.表在什么Region上的信息(.META.表也是一张普通的表,也在Region上)。通过两层的扩展最多可以支持 2的34 次方 个Region。也就是17179869184个,约等于171亿个Region。
.META.:是一张元数据表,它存储了所有Region的简要信息。.META.表中的一行记录就是一个Region,该行记录了该Region的起始行、结束行和该Region的连接信息,这样客户端就可以通过这个来判断需要的数据在哪个Region上。
2、查询流程
image-20200808124740782
(1)用户通过查找zk(ZooKeeper)的/hbase/root-region-server节点来知道-ROOT-表在什么RegionServer上。
(2)访问-ROOT-表,查找需要的数据在哪个.META.表上,.META.表在什么RegionServer上。
(3)访问.META.表来看你要查询的行键在什么Region范围里面。
( 4)连接具体的数据所在的RegionServ,Scan遍历数据
从流程图可知,每次查询的时候都查三次才知道Region在哪里,为了提高查询效率,可以使用缓存客户端在获取到Region信息之后会把.META.表的部分信息保存到客户端的缓存里面。当下次查询不到数据的时候客户端会再次获取Region信息,否则就直接用缓存的信息。
二、早期架构的弊端
通过三层架构虽然极大地扩展了可以容纳的Region数量,一直扩展到了171亿个 Region,可是我们并用不了这么多,虽然设计上是允许多个.META.表存在的,但是实际上在HBase的发展历史中,.META.表一直只有一个,所以-ROOT-中的记录一直都只有一行,-ROOT-表形同虚设。三层架构增加了代码的复杂度,容易产生BUG。
三、新的架构
1、执行流程
image-20200808124906157
(1)客户端先通过ZooKeeper的/hbase/meta-region-server节点查询到哪台RegionServer上有hbase:meta表。
(2)客户端连接含有hbase:meta表的RegionServer。hbase:meta表存储了所有Region的行键范围信息,通过这个表 就可以查询出你要存取的rowkey属于哪个Region的范围里面,以及这个Region又是属于哪个RegionServer。
(3)获取这些信息后,客户端就可以直连其中一台拥有你要存取的rowkey的RegionServer,并直接对其操作。
(4)客户端会把meta信息缓存起来,下次操作就不需要进行以上加载hbase:meta的步骤了
数据库
hbase
io
架构
扩展
zookeeper
server
缓存
key
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
select
图解redis的持久化存储机制RDB和AOF的原理和优缺点
本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ...
[详细]
蜡笔小新 2023-12-13 20:24:11
java
Java工具类库Hutool介绍及功能概述
本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ...
[详细]
蜡笔小新 2023-12-14 14:29:36
bash
Hyperledger Fabric外部链码构建与运行的开发笔记
本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ...
[详细]
蜡笔小新 2023-12-13 21:47:39
list
Python爬虫技术基础篇面向对象高级编程(中)的多重继承
本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ...
[详细]
蜡笔小新 2023-12-12 16:19:02
list
Vagrant虚拟化工具的安装和使用教程
本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ...
[详细]
蜡笔小新 2023-12-11 14:24:00
list
开发笔记:软件测试知识点之数据库压力测试方法小结
篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ...
[详细]
蜡笔小新 2023-12-10 20:29:19
list
hadoop基础----hadoop实战(六)-----hadoop管理工具---Cloudera Manager---CDH介绍
我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ...
[详细]
蜡笔小新 2023-10-16 14:21:13
schema
我们如何在kafkaconect分发模式下手动定义主题分区和复制
我正在使用sql-serverkafka-connect和debezium监视sqlserver数据库,但是当我发布并运行我的wo ...
[详细]
蜡笔小新 2023-10-16 12:54:59
java
Java开发实战讲解!字节跳动三场技术面+HR面
二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ...
[详细]
蜡笔小新 2023-10-15 19:48:25
java
Hbase1.2.0cdh5.16.2使用PREFIX_TREE编码导致集群压缩队列异常
Hbase1.X版本中PREFIX_TREE作为BlockEncoding存在bug,会造成RegionServer节点compactionqueue持续升高,甚至影响fl ...
[详细]
蜡笔小新 2023-10-15 14:00:19
bash
HBase系列之hbase2.2.3安装
1.下载地址hbase-2.2.3下载地址2.解压安装1)解压tarzxvfhbase-2.2.3-bin.tar.gz2)环境变量配置vim ...
[详细]
蜡笔小新 2023-10-15 13:51:57
list
Zookeeper 总结与面试题汇总
Zookeeper总结与面试题汇总,Go语言社区,Golang程序员人脉社 ...
[详细]
蜡笔小新 2023-10-15 12:51:19
object
使用 Ubuntu 中的 Python 获取浏览器历史记录
使用Ubuntu中的Python获取浏览器历史记录原文: ...
[详细]
蜡笔小新 2023-12-14 08:57:59
java
Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ...
[详细]
蜡笔小新 2023-12-13 16:18:09
window
如何在Windows环境下配置php+apache环境
本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ...
[详细]
蜡笔小新 2023-12-13 10:39:24
jizi456
这个家伙很懒,什么也没留下!
Tags | 热门标签
controller
uri
solr
case
stream
javascript
bitmap
char
schema
main
java
get
object
select
replace
testing
require
int
window
format
hashcode
match
数组
grid
random
header
timezone
metadata
list
bash
RankList | 热门文章
1
python 实现GM21
2
【开源】QuickPager ASP.NET2.0分页控件——使用示例、基本应用和查询功能
3
《西江月》翻译 原文赏析诗人宋王庭珪
4
无服务端纯前台导出数据到Excel-JSExcelXML.js 使用指南
5
基于ArcGIS10.0和Oracle10g的空间数据管理平台一(C#开发)
6
有一棵树,其结点的值为互不相同的正整数,这棵树用孩子兄弟表示法做存储结构,现输入一个正整数x。
7
c4d流体插件_好用的C4D插件都在这里了,还不赶紧收藏起来?
8
druid加密
9
Flink状态一致性
10
宏定义和内联函数的区别
11
mysql dump 增量_MySQL_使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法), 1、各种用法说明 A. 最简phpStudy...
12
php – 如何使这个数组变平?
13
【Offer】[16] 【数值的整数次方】
14
小朋友排序(树状数组)
15
均匀化退火时间_一组PPT带你全面了解:罩式退火工艺及原理
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有