2023学年完整公开课版教学HBase原理_第1页
2023学年完整公开课版教学HBase原理_第2页
2023学年完整公开课版教学HBase原理_第3页
2023学年完整公开课版教学HBase原理_第4页
2023学年完整公开课版教学HBase原理_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲:张义0102目录HBase系统架构HBase工作流程HBase系统架构1HBase系统架构HBase系统架构

从HBase的架构图上可以看出,HBase中的组件包括Client、Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等,接下来介绍他们的作用。HBase中的每张表都通过行键按照一定的范围被分割成多个子表(HRegion),默认一个HRegion超过256M就要被分割成两个,这个过程由HRegionServer管理,而HRegion的分配由HMaster管理。Client

包含访问HBase的接口,并维护cache来加快对HBase的访问。Zookeeper

HBase依赖Zookeeper,默认情况下HBase管理Zookeeper实例(启动或关闭Zookeeper),Master与RegionServers启动时会向Zookeeper注册。

保证任何时候,集群中只有一个master

实时监控Regionserver的上线和下线信息,并实时通知给master。

存储HBase的schema和table元数据。HBase系统架构

HMaster

为Regionserver分配region

负责Regionserver的负载均衡

发现失效的Regionserver并重新分配其上的region。

处理schema更新请求。HRegionServer

维护master分配给他的region,处理对这些region的io请求。

负责切分正在运行过程中变的过大的region。

注意:client访问hbase上的数据时不需要master的参与,因为数据寻址访问zookeeper和regionserver,而数据读写访问regionserver。master仅仅维护table和region的元数据信息,而table的元数据信息保存在zookeeper上,因此master负载很低HBase系统架构HRegion

table在行的方向上分隔为多个Region。Region是HBase中分布式存储和负载均衡的最小单元,即不同的region可以分别在不同的RegionServer上,但同一个Region是不会拆分到多个server上。

Region按大小分隔,每个表一般是只有一个region。随着数据不断插入表,region不断增大,当region的某个列族达到一个阈值时就会分成两个新的region。

每个region由以下信息标识:<表名,startRowkey,创建时间>

由目录表(-ROOT-和.META.)记录该region的endRowkeyStore

每一个region由一个或多个store组成,至少是一个store,hbase会把一起访问的数据放在一个store里面,即为每个ColumnFamily建一个store,如果有几个ColumnFamily,也就有几个Store。一个Store由一个memStore和0或者多个StoreFile组成。HBase以store的大小来判断是否需要切分regionHBase系统架构MemStore

memStore是放在内存里的。保存修改的数据即keyValues。当memStore的大小达到一个阀值(默认128MB)时,memStore会被flush到文件,即生成一个快照。目前hbase会有一个线程来负责memStore的flush操作。StoreFile

memStore内存中的数据写到文件后就是StoreFile,StoreFile底层是以HFile的格式保存。HfileHBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对Hfile做了轻量级包装,即StoreFile底层就是Hfile。HBase系统架构HLog

HLog(WALlog):WAL意为writeaheadlog,用来做灾难恢复使用,HLog记录数据的所有变更,一旦regionserver宕机,就可以从log中进行恢复。HBase工作流程2HBase工作流程

HBase工作流程Client

首先当一个请求产生时,HBaseClient使用RPC(远程过程调用)机制与HMaster和HRegionServer进行通信,对于管理类操作,Client与HMaster进行RPC;对于数据读写操作,Client与HRegionServer进行RPC。Zookeeper

HBaseClient使用RPC(远程过程调用)机制与HMaster和HRegionServer进行通信,但如何寻址呢?由于Zookeeper中存储了-ROOT-表的地址和HMaster的地址,所以需要先到Zookeeper上进行寻址。

HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HMaster的单点故障。

HBase工作流程HMaster

当用户需要进行Table和Region的管理工作时,就需要和HMaster进行通信。HBase中可以启动多个HMaster,通过Zookeeper的MasterEletion机制保证总有一个Master运行。

管理用户对Table的增删改查操作

管理HRegionServer的负载均衡,调整Region的分布

在RegionSplit后,负责新Region的分配

在HRegionServer停机后,负责失效HRegionServer上的Regions迁移HRegionServer

当用户需要对数据进行读写操作时,需要访问HRegionServer。HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列族创建一个Store实例,每个Store都会有一个MemStore和0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile,HFile就是实际的存储文件。因此,一个HRegion有多少个列族就有多少个Store。一个HRegionServer会有多个HRegion和一个HLog。HBase工作流程注意:HStore存储由两部分组成:MemStore和StoreFiles。MemStore是SortedMemoryBuffer,用户写入数据首先会放在MemStore,当MemStore满了以后会Flush成一个StoreFile(实际存储在HDHS上的是HFile),当StoreFile文件数量增长到一定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论