Hbase扩容原理

作者: Real_man | 来源:发表于2019-03-09 22:00 被阅读8次

Hbase是Hadoop的一个存储组件可以提供低延迟的读写操作,它一般构建在HDFS之上,可以处理海量的数据。Hbase有个很好的特性是可以自动分片,也就是意味着当表的数据量变得很大的时候,系统可以自动的分配这些数据。

Region与Region Server

Hbase的基本存储单位是Region,Region是表数据的子集,多个Region的数据集合可以组成一张完成的表数据。Region本质上存储的一些排好序的,连续的行数据。最初的时候一张表只有一个Region,当Region变得非常大的时候,Region就会从中间分裂成两个基本等大的Region。

image-20190309213627971

在Hbase中,slave也被称作RegionServer,每个RegionServer负责管理一些Region,同时一个Region只能属于一个RegionServer。

Region分配

一个RegionServer可以服务一个或多个Region,每个Region在Region Server启动的时候被分配。Master可以决定将一些Region从一个RegionServer中移动到令一个RegionServer里面,以便更好的负载均衡。当某个RegionServer故障的时候,Master也可以将它的Region分配给其他的RegionServer。

Region与RegionServer之间的映射关系存储在Zookeeper中的META表中,通过读取META表,你就可以知道那个Region可以负责处理你的rowkey操作,其实这也代表着在HBase读写操作的时候是不用经过Master节点的,你可以之间联系RegionServer。

如图,在客户端进行scan的时候,它可以之间联系多个RegionServer处理当前的操作。

image-20190309214611246

Meta表是用来跟踪Region的,它包含服务器的名称,Region的名称,表名,还有Region的startkey。通过startkey的范围,客户端就可以定位到当前的key要去哪一个Region了。

客户端在请求过META表之后,一般会将表缓存起来,防止每次操作都去获取。在Region进行分裂的时候,客户端去RegionServer操作Region的时候回返回异常,然后客户端会重新获取最新的META表信息。

客户端API

Hbase的Java客户端API有两个主要的接口:

  • HBaseAdmin: 创建,修改,删除,更新表,可以在集群中分配和不分配Region,合并Region,刷新操作等,主要与Master节点打交道。
  • HTable:客户端用来与具体某个表的数据打交道,获取,更新,删除,增加表的数据,主要与Region Server用来打交道。

最后

通过上面介绍,可以知道HBase虽然是Master/Slave架构的,但是并不是每次操作都经过Master的,读写数据的时候HBase只需要直接联系RegionServer即可。这也是HBase可以“无限扩容”的原因。在吞吐量不够的时候,通过增加RegionServer节点,可以增加吞吐量。

相关文章

  • Hbase扩容原理

    Hbase是Hadoop的一个存储组件可以提供低延迟的读写操作,它一般构建在HDFS之上,可以处理海量的数据。Hb...

  • Redis入门到高可用-9.Redis集群伸缩

    1.概要 伸缩原理 扩容原理 缩容原理 2.伸缩原理 Redis伸缩原理.png 3.扩容集群 Redis扩容集群...

  • HBase RegionServer动态感知过程

    HBase支持集群动态扩容,都归功于HMaster对HRegionServer的动态感知。本文基于hbase-1....

  • 2020-04-03 Java HashMap的实现原理的文章

    HashMap的扩容机制---resize() HashMap底层实现原理 扩容机制 Java中HashMap的实现原理

  • 2021-10-23

    推荐书籍:《HBase原理与实践》《HBase实战》《HBase权威指南》《HBase企业应用开发实战》《HBas...

  • HBase原理深入解析(一)----HBase架构总览

    前言:掌握Hbase的重要性不言而喻,掌握Hbase的设计原理更是重中之重。本文是对HBase原理进行讲解系列文章...

  • hbase体系结构

    hbase体系结构 参考资料 1、《hbase原理和实践》

  • Hbase+ES

    Hbase学习 一 :动手搭建环境到 Hbase的各种操作(关于建表的操作) 二:HBASE原理学习 一 :目录:...

  • HBase原理深入

    HBase原理深入 HBase读数据流程 HBase读操作 首先从zk中找到meta表的region信息,然后me...

  • NoSQL-Hbase-实现原理

    一、Hbase原理 逻辑视图 Hbase 表的特点 LSM三层存储 hbase会将数据先写到内存中,内存满了会将数...

网友评论

    本文标题:Hbase扩容原理

    本文链接:https://www.haomeiwen.com/subject/cizepqtx.html