HBase体系结构剖析

本文出自:http://wuyudong.com/archives/154

在上篇文章《HBase简介》中,已经提到过,HBase中的Table中的所有行都按照row key的字典序排列,Table 在行的方向上分割为多个Hregion:

region按大小分割的,每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,Hregion就会等分会两个新的Hregion。当table中的行不断增多,就会有越来越多的Hregion。

HRegion是Hbase中分布式存储和负载均衡的最小单元。最小单元就表示不同的Hregion可以分布在不同的HRegion server上。但一个Hregion是不会拆分到多个server上的。

HRegion虽然是分布式存储的最小单元,但并不是存储的最小单元。事实上,HRegion由一个或者多个Store组成,每个store保存一个columns family。每个Strore又由一个memStore和0至多个StoreFile组成。StoreFile以HFile格式保存在HDFS上。如图:

HFile的格式为:

HFile分为六个部分:

Data Block 段–保存表中的数据,这部分可以被压缩

Meta Block 段 (可选的)–保存用户自定义的kv对,可以被压缩。

File Info 段–Hfile的元信息,不被压缩,用户也可以在这一部分添加自己的元信息。

Data Block Index 段–Data Block的索引。每条索引的key是被索引的block的第一条记录的key。

Meta Block Index段 (可选的)–Meta Block的索引。

Trailer– 这一段是定长的。保存了每一段的偏移量,读取一个HFile时,会首先读取Trailer,Trailer保存了每个段的起始位置(段的Magic Number用来做安全check),然后,DataBlock Index会被读取到内存中,这样,当检索某个key时,不需要扫描整个HFile,而只需从内存中找到key所在的block,通过一次磁盘io将整个 block读取到内存中,再找到需要的key。DataBlock Index采用LRU机制淘汰。

HFile的Data Block,Meta Block通常采用压缩方式存储,压缩之后可以大大减少网络IO和磁盘IO,随之而来的开销当然是需要花费cpu进行压缩和解压缩。

目标Hfile的压缩支持两种方式:Gzip,Lzo。

系统架构

Client

1. 包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息。

Zookeeper

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

2. 存贮所有Region的寻址入口。

3. 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master

4. 存储Hbase的schema,包括有哪些table,每个table有哪些column family

Master

1. 为Region server分配region

2. 负责region server的负载均衡

3. 发现失效的region server并重新分配其上的region

4. GFS上的垃圾文件回收

5. 处理schema更新请求

Region Server

1.Region server维护Master分配给它的region,处理对这些region的IO请求

2.Region server负责切分在运行过程中变得过大的region

可以看到,client访问hbase上数据的过程并不需要master参与(寻址访问zookeeper和region server,数据读写访问regione server),master仅仅维护者table和region的元数据信息,负载很低。

时间: 2024-10-28 21:42:14

HBase体系结构剖析的相关文章

hbase体系结构以及说明

HMaster:数据库总控节点 HRegionServer:通常是一个物理节点即一台单独的计算机,一个HRegionServer包含多个HRegion,假如一个表有一亿行数据,那么可能会分散在一个RegionServer不同的Region中 Store:每一个列族是一个store,当插入数据时候现在MemStore中插入,一段时候后再由MemStore写入Storefile中,在经过一段时间之后HBase会启动一个后台线程,将不同的StoreFile进行合并,在合并的过程中删除那些标志位为删除的

HBase体系结构

HBase的服务器体系结构遵从简单的主从服务器架构,它由HRegion服务器(HRegion Service)群和HBase Master服务器(HBase Master Server)构成.Hbase Master服务器负责管理所有的HRegion服务器,而Hbase中所有的服务器是通过Zookeeper来进行协调,并处理HBase服务器运行期间可能遇到的错误的. 1.HRegion 当表的大小超过设置的值时,HBase会自动地将表划分为不同的区域,每个区域包含所有行的子集.从物理上讲,一张表

HBase体系结构(转)

HBase的服务器体系结构遵循简单的主从服务器架构,它由HRegion服务器(HRegion Server)群和HBase Master服务器(HBase Master Server)构成.HBase Master服务器负责管理所有的HRegion服务器,而HBase中所有的服务器都是通过ZooKeeper来进行协调,并处理HBase服务器运行期间可能遇到的错误.HBase Master Server本身不存储HBase中的任何数据,HBase逻辑上的表可能会被划分为多个HRegion,然后存储

Hbase体系结构理解

Hbase的基本体系结构的理解 首先hbase是hadoop的一个组件.而hadoop内部有很多的组件,这些组件几乎都依赖于hadoop最核心的两个东西建立起来的,一个是hdfs文件系统,另一个是mapreduce.当然hbase也不例外. hbase其实就是一个非关系型的数据库系统,可以将他和关系型数据库mysql类比一下,可能会便于理解.那么hbase的中的数据其实在物理层面,是存储在hdfs中的,当然其最最物理的模样其实就是hdfs中的block形态. (此图引用于百度百科)

HBase存储剖析与数据迁移

1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储.所以,对于结构化的SQL语言查询,HBase自身并没有接口支持.在大数据应用中,虽然也有SQL查询引擎可以查询HBase,比如Phoenix.Drill这类.但是阅读这类SQL查询引擎的底层实现,依然是调用了HBase的Java API来实现查询,写入等操作.这类查询引擎在业务层创建Schema来映射HBase表结构,然后通过解析SQL语法数,最后底层在调用HBase的Java API实现. 本篇内容,笔者并

HBase(八): 表结构设计优化

在 HBase(六): HBase体系结构剖析(上) 介绍过,Hbase创建表时,只需指定表名和至少一个列族,基于HBase表结构的设计优化主要是基于列族级别的属性配置,如下图: 目录: BLOOMFILTER BLOCKSIZE IN_MEMORY COMPRESSION/ENCODING VERSIONS TTL BLOOMFILTER: Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求

【教程分享】基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析

基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析 课程讲师:迪伦 课程分类:Java 适合人群:高级 课时数量:96课时 用到技术:MapReduce.HDFS.Map-Reduce.Hive.Sqoop 涉及项目:Greenplum Hadoop大数据分析平台 更新程度:完毕 对这个课程有兴趣的朋友可以加我的QQ2059055336和我联系 下载地址:链接:   pan.baidu.com/s/1nthYpKH 密码: niyi 随着云计算.大数据迅速发展,亟需

基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析

随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发人员并不多,直接导致了这几年hadoop技术的薪水远高于JavaEE及 Android程序员. Hadoop入门薪资已经达到了 8K 以上,工作1年可达到 1.2W 以上,具有2-3年工作经验的hadoop人才年薪可以达到 30万—50万 . 一般需要大数据处理的公司基本上都是大公司,所以学习had

Greenplum Hadoop视频教程_Hadoop应用案例剖析

基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析适合人群:高级课时数量:96课时用到技术:MapReduce.HDFS.Map-Reduce.Hive.Sqoop涉及项目:Greenplum Hadoop大数据分析平台联系qq:1840215592 Hadoop视频教程课程实战.实用.实际,总共 96 课时,系史上最全最深入的讲解Greenplum.Hadoop.云计算相关领域的技能课程,Hadoop视频教程适合于有一定java基础知识,对数据库和sql语句有一定