学习笔记大数据原理与技术 —— HBase大数据数据库

Posted 稀饭居然不在家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记大数据原理与技术 —— HBase大数据数据库相关的知识,希望对你有一定的参考价值。


本文 1550字 ,建议阅读 11分钟



1HBase概述

1)简介HBase是基于关系模型建立的分布式数据库。具有高可靠、高性能、面向列、可伸缩等特点。HBase一般运行在HDFS上,主要用来存储非结构化和半结构化的数据。HBase可以通过水平扩展的方式实现大表数据(表的规模可以达到数十亿行以及数百万列)的存储,对大表数据的读写访问可以达到实时级别。

2HBase与关系型数据库的区别

[1] 数据类型:关系型数据库存储结构化数据,HBase数据库可以存储非结构化数据;

[2] 存储模式:关系型数据库基于行模式存储,HBase数据库基于列存储;

[3] 可扩展性:关系型数据库横向扩展性较差,纵向扩展的空间也有限。而HBase无论是行扩展还是列扩展都很方便,其能够便捷地通过增加硬件节点来实现存储空间和性能的扩展。

3HBase的应用场景

[1] 场景一:海量数据(TBPB)且高吞吐量;

[2] 场景二:需要在海量数据中实现高效的随机读取;

[3] 场景三:性能可伸缩,需要同时处理结构化和非结构化的数据;

[4] 场景四:不需要完全拥有传统关系型数据库所具备的ACID特性。

【注】:ACID特性是指数据库事务正常执行的四个特性,分别指原子性(A)、一致性(C)、独立性(I)和持久性(D)。

 

2HBase架构原理

1HBase的数据模型

[1] 表:HBase采用表的形式存储数据,表由行和列组成;

[2] 行:HBase中的行由行键(Rowkey)和若干列组成。行是通过行键按字段顺序进行排序的,所以行键的设计非常重要,好的行键设计可以将内容相关的行排列到相邻位置便于查找;

[3] 列族:一个表再水平方向上由一个或多个列族组成。一个列族可以由多个列组成,列族在表创建时就需要预先设定好;

[4] 列限定符:列族中添加不同的列限定符可以对数据进行划分定位,列限定符以列族名作为前缀,用“:”连接后缀;

[5] 单元格:一个单元格保存了一个值的多个版本。单元格通过行键、列族和列限定符进定位,每个版本对应一个时间戳;

[6] 时间戳:HBase每个值都会带一个时间戳,时间戳标识了这个值的版本。

2)表和Region:一个HBase集群中维护着多张表,每张表可能包含非常多的行,在单台机器上无法全部存储。HBase会将一张数据表按行键的值范围横向划分为多个子表,实现分布式存储。这些子表,在HBase中被称作“Region”,RegionHBase分布式存储的基本单元。每张表最开始只包含一个Region,随着表中数据不断增大,Region也会在达到一定阈值后增多(即1Region分裂为2Region)。

3HBase的系统架构HBase采用Master / Slave架构,主要角色包括Master服务器(HMaster,管理节点)、Region服务器(HRegionServer,数据节点)、ZooKeeper服务器以及Client客户端。HBase一般以 HDFS作为其底层存储来实现数据的高可用,其本身不具备数据复制的能力。

 

3HBase的读写流程与Compaction

1HBase的读流程

[1] 第一步:客户端发起请求,与ZooKeeper服务器通信获取hbase:meta所在的HRegion Server,记为HRegionServer A

[2] 第二步:访问HRegionServer A中的hbase:meta(记载着各个User Region信息),通过行键查找hbase:meta获取所要读取的Region所在HRegionServer,记为HRegionServer B

[3] 第三步:请求发送到HRegionServer BHRegionServer B会先查询MemStore,如果未查询到目标,则在HFile中查找;

[4] 第四步:查询到数据后返回到客户端。

2HBase的写流程

[1] 第一步:客户端发起请求,与ZooKeeper服务器通信获取hbase:meta所在HRegionServer,记为HRegionServer A

[2] 第二步:客户端访问HRegionServer A中的hbase:meta,通过行键查找hbase:meta获取本次写入操作所涉及的HRegionServer

[3] 第三步:客户端按照RegionServerRegion将数据打包发送到对应的HRegionServerRegionServer将数据写入对应的Region

[4] 第四步:客户端发送完待写数据后,会自动等待请求处理结果,如果客户端没有捕获到任何的异常,则认为所有数据写入成功。如果全部写入失败,或者部分写入失败,客户端能够获知详细的失败Key值列表。

3HBaseCompaction过程:当随着时间的增长,业务数据不断写入到HBase集群中,会导致HFile的数目越来越多。当HFile文件过多时,HBase就会启动一个Compaction的操作,其主要目的是为了减少同一个Region的同一个列族下面的小文件数目,从而提升读取的性能。Compaction主要包括MinorMajor两类。





以上是关于学习笔记大数据原理与技术 —— HBase大数据数据库的主要内容,如果未能解决你的问题,请参考以下文章

《大数据技术原理与应用》 复习笔记 (桂林电子科技大学)

大数据技术之HBase原理分析

大数据技术基础笔记4 分布式数据库HBase

《大数据技术原理与应用》学习

《大数据技术应用与原理》第二版-第四章分布式数据库HBase

HBase笔记:对HBase原理的简单理解