HBase系统架构及数据结构_第1页
HBase系统架构及数据结构_第2页
HBase系统架构及数据结构_第3页
HBase系统架构及数据结构_第4页
HBase系统架构及数据结构_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

HBase系统架构及数据结构2知识目标HBase的架构HBase的使用流程01能力目标了解HBase架构掌握HBase使用流程总结HBase读写流程02学习目标3目录01HBase表结构逻辑表视图02存储结构03Hbase系统架构04数据的读写流程简述HBase表结构逻辑表视图4初次接触HBase,可能看到以下描述会懵:“基于列存储”,“稀疏MAP”,“RowKey”,“ColumnFamily”。其实没那么高深,我们需要分两步来理解HBase,就能够理解为什么HBase能够“快速地”“分布式地” 处理“大量数据”了。1.内存结构2.文件存储结构名词概念5假如我们有如下一张表Rowkey的概念6Rowkey的概念和mysql中的主键是完全一样的,Hbase使用Rowkey来唯一的区分某一行的数据。由于Hbase只支持3中查询方式:1、基于Rowkey的单行查询2、基于Rowkey的范围扫描3、全表扫描因此,Rowkey对Hbase的性能影响非常大,Rowkey的设计就显得尤为的重要。设计的时候要兼顾基于Rowkey的单行查询也要键入Rowkey的范围扫描。具体Rowkey要如何设计后续会整理相关的文章做进一步的描述。这里大家只要有一个概念就是Rowkey的设计极为重要。rowkey行键可以是任意字符串(最大长度是

64KB,实际应用中长度一般为10-100bytes),最好是16。在HBase内部,rowkey保存为字节数组。HBase会对表中的数据按照rowkey排序(字典顺序)Column的概念7列,可理解成MySQL列。ColumnFamily的概念8列族,HBase引入的概念。Hbase通过列族划分数据的存储,列族下面可以包含任意多的列,实现灵活的数据存取。就像是家族的概念,我们知道一个家族是由于很多个的家庭组成的。列族也类似,列族是由一个一个的列组成(任意多)。Hbase表的创建的时候就必须指定列族。就像关系型数据库创建的时候必须指定具体的列是一样的。Hbase的列族不是越多越好,官方推荐的是列族最好小于或者等于3。我们使用的场景一般是1个列族。9TimeStamp的概念TimeStamp对Hbase来说至关重要,因为它是实现Hbase多版本的关键。在Hbase中使用不同的timestame来标识相同rowkey行对应的不通版本的数据。HBase中通过rowkey和columns确定的为一个存储单元称为cell。每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位整型。时间戳可以由hbase(在数据写入时自动)赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。为了避免数据存在过多版本造成的的管理(包括存贮和索引)负担,hbase提供了两种数据版本回收方式:保存数据的最后n个版本保存最近一段时间内的版本(设置数据的生命周期TTL)。用户可以针对每个列簇进行设置。10ColumnQualifier(列限定符)的概念列限定符,你可以理解为是具体的列名,例如courses:history,courses:math都属于courses这个列族,它们的列限定符分别是history和math。需要注意的是列限定符不是表Schema的一部分,你可以在插入数据的过程中动态创建列。11单元格(Cell)由{rowkey,column(=+),version}唯一确定的单元。Cell中的数据是没有类型的,全部是字节码形式存贮。12存储结构-RegionsHBaseTable中的所有行按照RowKey的字典序排列。HBaseTables通过行键的范围(rowkeyrange)被水平切分成多个Region,一个Region包含了在startkey和endkey之间的所有行。每个表一开始只有一个Region,随着数据不断增加,Region会不断增大,当增大到一个阀值的时候,Region就会等分为两个新的Region。当Table中的行不断增多,就会有越来越多的Region。Region是HBase中分布式存储和负载均衡的最小单元。这意味着不同的Region可以分布在不同的RegionServer上。但一个Region是不会拆分到多个Server上的。13存储结构-RegionServerRegionServer运行在HDFS的DataNode上。它具有以下组件:WAL(WriteAheadLog,预写日志):用于存储尚未进持久化存储的数据记录,以便在发生故障时进行恢复。BlockCache:读缓存。它将频繁读取的数据存储在内存中,如果存储不足,它将按照最近最少使用原则清除多余的数据。MemStore:写缓存。它存储尚未写入磁盘的新数据,并会在数据写入磁盘之前对其进行排序。每个Region上的每个列族都有一个MemStore。HFile:将行数据按照Key\Values的形式存储在文件系统上。RegionServer存取一个子表时,会创建一个Region对象,然后对表的每个列族创建一个Store实例,每个Store会有0个或多个StoreFile与之对应,每个StoreFile则对应一个HFile,HFile就是实际存储在HDFS上的文件。14Hbase系统架构HBase系统遵循Master/Salve架构,由三种不同类型的组件组成:Zookeeper保证任何时候,集群中只有一个Master;存贮所有Region的寻址入口;实时监控RegionServer的状态,将RegionServer的上线和下线信息实时通知给Master;存储HBase的Schema,包括有哪些Table,每个Table有哪些ColumnFamily等信息。Master为RegionServer分配Region;负责RegionServer的负载均衡;发现失效的RegionServer并重新分配其上的Region;GFS上的垃圾文件回收;处理Schema的更新请求。RegionServerRegionServer负责维护Master分配给它的Region,并处理发送到Region上的IO请求;RegionServer负责切分在运行过程中变得过大的Region。15组件间的协作HBase使用ZooKeeper作为分布式协调服务来维护集群中的服务器状态。Zookeeper负责维护可用服务列表,并提供服务故障通知等服务:每个RegionServer都会在ZooKeeper上创建一个临时节点,Master通过Zookeeper的Watcher机制对节点进行监控,从而可以发现新加入的RegionServer或故障退出的RegionServer;所有Masters会竞争性地在Zookeeper上创建同一个临时节点,由于Zookeeper只能有一个同名节点,所以必然只有一个Master能够创建成功,此时该Master就是主Master,主Master会定期向Zookeeper发送心跳。备用Masters则通过Watcher机制对主HMaster所在节点进行监听;如果主Master未能定时发送心跳,则其持有的Zookeeper会话会过期,相应的临时节点也会被删除,这会触发定义在该节点上的Watcher事件,使得备用的MasterServers得到通知。所有备用的MasterServers在接到通知后,会再次去竞争性地创建临时节点,完成主Master的选举。16组件间的协作HBase使用ZooKeeper作为分布式协调服务来维护集群中的服务器状态。Zookeeper负责维护可用服务列表,并提供服务故障通知等服务:每个RegionServer都会在ZooKeeper上创建一个临时节点,Master通过Zookeeper的Watcher机制对节点进行监控,从而可以发现新加入的RegionServer或故障退出的RegionServer;所有Masters会竞争性地在Zookeeper上创建同一个临时节点,由于Zookeeper只能有一个同名节点,所以必然只有一个Master能够创建成功,此时该Master就是主Master,主Master会定期向Zookeeper发送心跳。备用Masters则通过Watcher机制对主HMaster所在节点进行监听;如果主Master未能定时发送心跳,则其持有的Zookeeper会话会过期,相应的临时节点也会被删除,这会触发定义在该节点上的Watcher事件,使得备用的MasterServers得到通知。所有备用的MasterServers在接到通知后,会再次去竞争性地创建临时节点,完成主Master的选举。17数据的读写流程简述-写入数据Client向RegionServer提交写请求;RegionServer找到目标Region;Region检查数据是否与Schema一致;如果客户端没有指定版本,则获取当前系统时间作为数据版本;将更新写入WALLog;将更新写入Memstore;判断Memstore存储是否已满,如果存储已满则需要flush为StoreHfile文件。18数据的读写流程简述-读取数据以下是客户端首次读写HBase上数据的流程:客户端从Zookeeper获取META表所在的RegionServer;客户端访问META表所在的RegionServer,从META表中查询到访问行键所在的RegionServer,之后客

温馨提示

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

评论

0/150

提交评论