HBase体系架构

原创 2016年05月30日 21:53:34

首先要知道Hbase服务器体系结构是主从服务器架构,它有HBbase Master(主服务器)和HRegion(从服务器群)构成。其中HBase Master服务器通过Zookeeper来进行协调并处理所有的HRegion服务器运行期间可能遇到的错误。HMaster本身并不存储Hbase中的任何数据,Hbase中的数据是存储在Hregion服务器群中的,也是放在HDFS上的。HBase体系结构图如下:



一. HMaster(主服务器)

HMaster的主要任务就是告诉每个HRegion服务器它需要维护哪些HRegion,所以每台HRegion服务器都需要和HMaster服务器保持通信。HMaster没有单点问题,在Hbase中可以启动多个HMaster,通过Zookeeper的Master选举机制保证总有一个HMaster正常运行并提供服务。

当一台新的HRegion服务器登录到HMaster时,HMaster会告诉它等待分配数据,当一台HRegion服务器死机时,HMaster会把它负责的HRegion标记为未分配,然后再把他们分配到其他的HRegion服务器中。

HMaster在功能主要负责Table和HRegion的管理工作,具体包括:

    1.管理用户对Table的增、删、改、查。

2.管理HRegion的负载均衡,调整HRegion分布

3.在HRegion分裂后负责新HRegion的分配

4.在HRegion服务器停机后负责失效的HRegion服务器上HRegion的迁移。

二.Zookeeper(协调服务组件)

Zookeeper 负责管理Hbase中多HMaster的选举、服务器之间状态同步等。主要工作是:存储HBase元数据信息、实时监控RegionServer、存储所有Region的寻址入口。。。。

三.HRegion

HBase中所有的数据都是保存在HDFS上的,用户通过HRegion服务器来获取这些数据,通常每台机器只运行一个HRegion服务器,而且每个区段的HRegion也只会被一个HRegion服务器维护。下面是HRegion服务器体系结构:


HRegion服务器主要包含两大部分:HLOG部分和HRegion部分。

HLOG用来存储数据日志,采用的是先写日志的方式(意思是在对HRegion进行操作之前要先把日志写好,再进行操作)。

HRegion由很多的Store组成,每一个Store存储的实际上是一个列族下的数据。此外,在每个Store中都包含有一块MemStore,MemStore驻留在内存中,数据到来时首先更新到MemStore中,当到达一定的阈值后再更新到对应的StoreFile(底层实现是HFile)中,StoreFile负责的是实际的数据存储也是HBase种最小的存储单位。

另外,HBase中不涉及数据的直接删除和更新操作,所有的数据均是通过追加的方式进行更新,以时间戳进行区别。数据删除和更新在HBase合并(compact)的时候进行。当Store中StoreFile的数量超过设定的阈值时将触发合并操作,该操作会把多个StoreFile文件合并成一个StoreFile文件。

当用户需要更新数据的时候,数据会被分配到对应的HRegion服务器上提交修改。数据首先被提交到HLOG文件中,在操作被写入HLOG之后commit()调用才会将其返回给客户端。所以HLOG文件可以用于故障恢复,当一台HRegionServer发生故障,那么它所维护的HRegion会被重新分配到新的机器上,这是HLOG会安装HRegion进行划分,新的机器在加载HRegion的时候可以通过HLOG进行恢复。

当一个HRegion变得太过巨大,超过了设定的阈值时,HRegion服务器会调用HRegion.closeAndSplit()将HRegion拆分为两个,并由HMaster决定由哪台HRegion服务器来存放新的文件。


本文大部分内容摘抄自《Hadoop实战》。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Hive 常见问题与技巧

1Q: 是否有像类似于phpmyadmin一样的hive查询客户端,能以界面的方式查询hive语句和导出数据 A: 有的,客户端的话可以使用squirrel来连接hive,squirrel是一个...
  • wisgood
  • wisgood
  • 2013年12月07日 11:55
  • 3944

LInux的启动过程

当主机加电时,系统启动的过程就正式开始了。Linux系统启动的过程可以简单的分为以下几类: (1)主机加电自检:按下主机电源键之后,启动过程就开始了。系统会首先加载BIOS(Basic Iput O...

HBase体系架构与安装

  • 2014年04月16日 00:35
  • 1.01MB
  • 下载

Hbase体系架构与安装

  • 2014年03月11日 11:25
  • 1.78MB
  • 下载

[HBase] 体系架构(物理模型)

Client --包含访问HBase的接口并维护cache,加快对HBase的访问 Zookeeper –保证任何时候,集群中只有一个master –存贮所有Region的寻址...

Hbase笔记四之体系架构

hbase架构简介
  • ty4315
  • ty4315
  • 2017年02月08日 21:34
  • 203

Hbase数据结构和体系架构

1.HBase与关系数据库比较1)行式数据库优点:1.数据存储在一起。2.INSERT/UPDATE数据较容易。 缺点:1.选择操作(select)时,即使是几行所有数据也要被读取2)列式数据库(h...

大数据(二十八)HBASE【Hbase 体系架构】

一、Hbase 体系架构         其中Client是客户端,连接Hbase的工具;Zookeeper实现Hbase高可用;HMaster是调度者,告诉我们的访问程序那张表在哪;HRegio...

硬件体系架构浅析

  • 2015年01月21日 13:32
  • 1.08MB
  • 下载

软件体系架构中的三层结构

  • 2013年09月30日 11:41
  • 128KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HBase体系架构
举报原因:
原因补充:

(最多只允许输入30个字)