7.2-列存储数据库-2_第1页
7.2-列存储数据库-2_第2页
7.2-列存储数据库-2_第3页
7.2-列存储数据库-2_第4页
7.2-列存储数据库-2_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、7.2列存储数据库HBASE的存储架构HBASE的系统架构及基本组件【本节学习目标】一、HBASE存储结构-含义回顾HBASE的逻辑模型: 表表的形式表达和存储数据,表-行和列,列-若干个列族。表基于行键、列族、列限定符和时间版本。每个c列族DFS上单独文件中,空值不会被保存。Key 和 Version number在每个 column family中均有一份;HBase 为每个值维护了多级索引,即:物理存储-上面的逻辑模型对于物理文件的过程一、HBASE存储结构物理存储1、表中所有行都按照row key的字典序排列;2、Table在行的方向上分割为多个Region;3、Region按大小分割

2、的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,之后会有越来越多的region;4、Region是Hbase中分布式存储和负载均衡的最小单元,不同Region分布到不同RegionServer上一、HBASE存储结构存储模型图模型层次图一、HBASE存储结构-存储部件1)表Table: 面向列(族)的存储和权限控制,列(族)独立检索的稀疏存储。按行健的字典排序;Table在行的方向上分割多个Region。)区域Region(表的Regions):每个Region存储着Table的若干行,Region是分

3、布式存储的最小单元。Store(Region中以列族为单位的单元): 区域由一个或者多个Store组成,每个store保存一个列族。Strore由memStore和0至多个StoreFileStoreFile:以HFile的格式存储在分布式文件系统(HDFS)上一、HBASE存储结构storefile的结构StoreFile:以HFile存储在HDFS)上,组成成1)DataBlock保存表中的数据,可压缩;2)MetaBlock用户自定义的键值对,可压缩;)File Info存储HFile的元信息,不能压缩,用户也可以在这一部分添加自己的元信息;)DataBlockIndex存储数据块索引,

4、索引的键值是第一条记录的键值(key);5) MetaBlockIndex元数据块的索引;6) Trailer保存每一段的偏移量,读取一个HFile时,会首先读取Trailer(段的开始位置)。Block (读写最小单元),存储管理的最小单位。HBase数据存储的层次的关系)Table和Region的关系 1多 2)Region和Store的关系:每一行都包含一或多个列族,所以每个Region包括一到多个Store。 1多3)Store和HFile的关系:每个store由一个memStore和0至多个HFile组成,在client进行数据写过程中,数据会先写入缓冲(memStore),当缓冲(

5、memStore)到达一定大小的时候,就会flush到硬盘生成一个Hfile。 1多二、HBASE的系统构架-集群Hbase是一个分布式的数据库,使用Zookeeper来管理集群。在架构层面上分为Master和多个RegionServer。 在分布式的生产环境中,HBase 需要运行在 HDFS 之上,由 HDFS提供基础的存储设施,上层提供访问的数据的 API,对HBase 的数据进行管理,集群主要主服务器(Master)、 区域服务器(Region Server)、协调者服务器(Zookeeper)等组成,二、HBASE的系统构架-集群图示集群构架图二、HBASE的系统构架主服务器管理区域

6、服务器;指派区域服务器对特定区域服务; 恢复失效的区域服务器,负载均衡和修复时区域服务器监听ZooKeeper中的状态, 其管理职能包括创建、删除、修改表的定义等;负责分配区域给区域服务器。多个Master节点共存,只有一个Master是提供服务的,其他的Master节点处于待命的状态。当正在工作的Master节点失效时,其他的Master则会接管集群。成二、HBASE的系统构架-区域服务器为区域的访问提供服务,直接为用户提供服务;负责维护区域的合并与分割; 负责数据存持久化。管理表格,实现读写操作。客户端直接连接区域服务器,并通信获取HBase中的数据。二、HBASE的系统构架协调者协调者(

7、Zookeeper),保证任何时候集群中只有一个master, 存储所有Region的寻址入口, 实时监控区域服务器的状态,将Region上线和下线的信息实时通知给Master, 存储Hbse的schema,有哪些table,table有哪些列族。通过选举,集群中只有一个master处于运行状态。Zookeeper负责Region和区域服务器的注册。解决分布式环境下数据管理问题:1.统一命名, 2.状态同步, 3.集群管理, 4.配置同步二、HBASE的系统构架-clientClient: 请求发起者, 通过API,包含访问Hbase的接口,维护着一些cache来加快对Hbase的访问,比如r

8、egion的位置信息。访问HBase的接口,并维护cache来加快对HBase的访问,比如region的位置信息. 使用HBase RPC机制与HMaster和区域服务器进行通信. Client与HMaster进行通信进行管理类操作. Client与区域服务器进行数据读写类操作二、HBASE的系统基本组件HBase采用Master/Slave架构搭建集群,由HMaster节点、区域服务器节点、ZooKeeper集群组成,在底层,它将数据存储于分布式文件系统中。区域服务器包含多个HRegion,由WAL(HLog)、BlockCache、MemStore、HFile组成,二、HBASE的系统构架

9、-组件图组件图二、HBASE的系统构架-组件解释HLog(WAL log): WAL 意为先写日志后记录数据(Write ahead log),用做灾难恢复,Hlog记录数据的所有变更WAL是HDFS上的一个文件,写操作都先将数据写入日志后,才会真正更新MemStore,最后写入HFile中。区域服务器失效后,可以从日志文件中读取数据,重做所有的操作,来保证数据的一致性。日志文件会定期删除旧的文件(已写到HFile中的Log可以删除)二、HBASE数据库系统构架-HLOG每个区域服务器维护一个Hlog,而不是每个Region一个。HLog是一个普通的Hadoop序列文件,它的Key是HLogK

10、ey对象,HLogKey中记录了写入数据的归属信息,包括table和region名字,sequence number和timestamp,HLog Sequece File的Value是Hbase的键值对象,即对应HFile中的键值。二、HBASE数据库系统构架Hlog相关LogFlusher, 数据以键值形式到达区域服务器,写入WAL,之后写入一个SequenceFile。日志文件先写内存, LogFlusher定期把缓冲器中数据写到Hfile(磁盘上)。LogRoller, Log配置大小,默认每60分钟,会打开一个新的log文件。LogRoller调用HLog.rollWriter(),定时滚动日志,利用HLog.cleanOldLogs()可以清除旧的日志。取得存储文件中的最大的sequence number,存在一个log所有的条目的“sequence number”均低于这个

温馨提示

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

评论

0/150

提交评论