`
小网客
  • 浏览: 1247925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hbase体系结构之二

 
阅读更多

Hbase架构图

 

 

Client作用:

 

使用HBase RPC机制与HMaster和HRegionServer进行通信
Client与HMaster进行通信进行管理类操作
Client与HRegionServer进行数据读写类操作

 

 Zookeeper作用:

 

Zookeeper Quorum存储-ROOT-表地址、HMaster地址
HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况
Zookeeper避免HMaster单点问题

 

 HMaster:

 

HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行
主要负责Table和Region的管理工作:
1 管理用户对表的增删改查操作
2 管理HRegionServer的负载均衡,调整Region分布
3 Region Split后,负责新Region的分布
4 在HRegionServer停机后,负责失效HRegionServer上Region迁移

 HRegionServer:

 

HRegionServer管理一些列HRegion对象;
每个HRegion对应Table中一个Region,HRegion由多个HStore组成;
每个HStore对应Table中一个Column Family的存储;
Column Family就是一个集中的存储单元,故将具有相同IO特性的Column放在一个Column Family会更高效

 HStore:

 

HBase存储的核心。由MemStore和StoreFile组成。
MemStore是Sorted Memory Buffer

 HLog:

 

在分布式系统环境中,无法避免系统出错或者宕机,一旦HRegionServer以外退出,MemStore中的内存数据就会丢失,引入HLog就是防止这种情况
工作机制:
每个HRegionServer中都会有一个HLog对象,HLog是一个实现Write Ahead Log的类,每次用户操作写入Memstore的同时,也会写一份数据到HLog文件,HLog文件定期会滚动出新,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知,HMaster首先处理遗留的HLog文件,将不同region的log数据拆分,分别放到相应region目录下,然后再将失效的region重新分配,领取到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复。

 Hbase存储格式:

 

HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,格式主要有两种:
1 HFile HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile
2 HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File

 HFile:

 

HFile文件不定长,长度固定的块只有两个:Trailer和FileInfo
Trailer中指针指向其他数据块的起始点
File Info中记录了文件的一些Meta信息,例如:AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY等
Data Index和Meta Index块记录了每个Data块和Meta块的起始点
Data Block是HBase I/O的基本单元,为了提高效率,HRegionServer中有基于LRU的Block Cache机制
每个Data块的大小可以在创建一个Table的时候通过参数指定,大号的Block有利于顺序Scan,小号Block利于随机查询
每个Data块除了开头的Magic以外就是一个个KeyValue对拼接而成, Magic内容就是一些随机数字,目的是防止数据损坏
HFile里面的每个KeyValue对就是一个简单的byte数组。这个byte数组里面包含了很多项,并且有固定的结构。
KeyLength和ValueLength:两个固定的长度,分别代表Key和Value的长度
Key部分:Row Length是固定长度的数值,表示RowKey的长度,Row 就是RowKey
Column Family Length是固定长度的数值,表示Family的长度
接着就是Column Family,再接着是Qualifier,然后是两个固定长度的数值,表示Time Stamp和Key Type(Put/Delete)
Value部分没有这么复杂的结构,就是纯粹的二进制数据

 HLog:

 

HLog文件就是一个普通的Hadoop Sequence File,Sequence File 的Key是HLogKey对象,HLogKey中记录了写入数据的归属信息,除了table和region名字外,同时还包括 sequence number和timestamp,timestamp是“写入时间”,sequence number的起始值为0,或者是最近一次存入文件系统中sequence number。
HLog Sequece File的Value是HBase的KeyValue对象,即对应HFile中的KeyValue
 

 

  • 大小: 43.1 KB
分享到:
评论

相关推荐

    Hbase体系架构与安装

    hbase的体系架构安装,hbase的三种安装模式,及一些操作命令

    实验三:熟悉常用的HBase操作

    Hadoop版本至少需要2.7.1或更高,这是HBase运行的基础,因为HBase构建在Hadoop的HDFS之上,用于存储数据。HBase版本至少为1.1.2,它提供了一套强大的数据管理特性。JDK版本至少1.7,这是运行HBase和相关Java程序的...

    HBase海量数据存储实战视频教程

    从HBase的集群搭建、HBaseshell操作、java编程、架构、原理、涉及的数据结构,并且结合陌陌海量消息存储案例来讲解实战HBase 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为...

    搭建HBase完全分布式数据库

    二、HBase体系结构: HBase由以下几个主要组件构成: 1. HMaster:负责管理用户对表的增删改查操作,管理HRegionServer的负载均衡,动态调整HRegion分布,负责HRegion的分配以及HRegionServer停机后的HRegion迁移。...

    hbase应用架构指南

    Hbase全称为Hadoop Database,即Hbase是Hadoop的数据库,是一个分布式的存储系统。...本篇文章将重点介绍Hbase三个方面的内容:Hbase体系结构(架构)的介绍、Hbase shell的操作、Hbase的Java api的客户端操作

    大数据技术原理及应用课实验3 熟悉常用的HBase操作 林子雨实验

    1. **理解HBase在Hadoop体系结构中的角色**:HBase是Hadoop生态系统中的一个关键组件,它提供了对海量数据的高效存储和检索能力,特别适合于处理半结构化的数据,如日志、时间序列数据等。 2. **熟练使用HBase操作...

    hbase的rowkey设计与hbase的协处理器运用.docx

    6. 高性能:底层的 LSM 数据结构和 Rowkey 有序排列等架构上的独特设计,使得 HBase 具有非常高的写入性能。 HBase 的读写过程 HBase 的读写过程可以分为两部分:写数据流程和读数据流程。 写数据流程 写数据...

    Hadoop之Hbase从入门到精通

    ### Hadoop之Hbase从入门到精通 #### HBase技术介绍与概述 HBase是一种分布式、高可靠性且高性能的列式存储系统,它基于Hadoop生态体系构建,并且能够支持大规模的数据存储需求。HBase的设计灵感来源于Google的...

    hbase

    HBase则在HDFS之上提供了一个数据模型,使得非结构化和半结构化数据可以被高效地存储和查询。 HBase的体系架构主要包含以下组件: 1. **Master节点(HMaster)**:HMaster是HBase集群的管理节点,负责区域服务器的...

    大数据实验三-HBase编程实践

    #### 一、HBase在Hadoop体系结构中的角色 HBase是一种分布式的、可扩展的大规模数据存储系统,它构建在Hadoop之上,特别是在Hadoop Distributed File System (HDFS)之上。HBase为结构化数据提供了一个高性能、可...

    分布式存储系统HBase关键技术研究.pdf

    HBase的体系结构可以分为三个部分:存储层、处理层和协同层。存储层是HBase的基础,使用HDFS来存储数据。处理层是HBase的处理引擎,使用MapReduce来处理数据。协同层是HBase的协同服务,使用Zookeeper来协调各个节点...

    五分钟学大数据-HBase 知识体系吐血总结1

    **HBase 知识体系概览** HBase 是一个分布式、高性能、基于列式存储的 NoSQL 数据库,它是 Apache Hadoop 生态系统的一部分,专为处理海量结构化半结构化数据而设计。HBase 提供了实时读写能力,支持大数据量的存储...

    HBase.docx

    - HBase在HDFS上的目录结构有特定的命名规则,用于存放Region数据。 5. **整体结构** - 包括Client、Zookeeper集群、HBase Master、Region Server集群以及HDFS。 以上就是关于HBase的基础知识,包括其特点、核心...

    细细品味Hadoop_Hadoop集群(第11期)_HBase简介及安装.pdf

    #### 二、HBase体系结构 HBase 的体系结构主要包括以下几个组件: 1. **HBase Client**:客户端用于与 HBase 进行交互,包括读取和写入数据等操作。客户端通过 RPC(远程过程调用)机制与 HMaster 和 ...

    hbase在淘宝的应用与优化

    淘宝针对HBase的监控、运维及测试体系构建了一套完善的架构,包括Zookeeper的集中管理、HBase集群的独立部署、HDFS的统一管理、HMaster的备份机制等,确保了系统的稳定运行和高效维护。 淘宝在HBase的应用与优化...

    HBase学习资料

    #### HDFS的体系结构 HDFS采用主从架构,主要包括两类节点:NameNode(目录节点)和DataNode(数据节点)。 - **NameNode**:负责管理和维护文件系统的命名空间,包括文件和目录的元数据、文件的存储位置信息以及...

    HBase专场:阿里云HBase产品体系架构及特性解析(封神).pdf

    HBase是Apache开源的NoSQL数据库,构建在Hadoop之上,提供高可靠性、高性能、可伸缩、高实时性的大数据存储和处理能力。HBase在大数据生态中扮演着重要角色,尤其适用于处理非结构化或半结构化的稀疏数据,能够在...

Global site tag (gtag.js) - Google Analytics