三、大数据存储——HBase

目录

一、NOSQL引入

1.1.NoSQL数据库简介

1.2.混合持久化

1.3.数据模型的转变

2.HBASE

2.1.Hbase是什么

 2.2.Hbase实践

2.3.HBase列式存储模型

2.4.Hbase架构

2.5.Region分裂 及 StoreFile合并

2.6.负载均衡

2.7.Hbase读写寻址

3.分布式CAP理论

4.图数据库


一、NOSQL引入

        传统的关系型数据库需要显示某数据时,有时需要查找多张表,关系型数据库不适合关联查询,因为表连接需要大量的IO操作。

        且随着数据的增多,要更多的计算资源,才能应对数据和流量的增加:纵向扩展及横向扩展.

        • 纵向扩展:需要功能更强大的计算机,但机器功能越强、成本越高,且扩展尺度也有限
        • 横向扩展: 采用由多个小型计算机组成的集群

1.1.NoSQL数据库简介

NoSQL类数据库特征:
        • 自由模式:不像关系型数据库可以抽离出关系代数,存储较为自由灵活。
        • 混合持久化(键值、文档、图、列族几类数据库)

1.2.混合持久化

  • 键值数据库适合存储用户比如会话、配置文件、参数等等,比如Redis
  • 文档数据库适合内容管理系统存储以及存储日志信息。
  • 列族数据库适合用来保存应用程序状态或运行中遇到的错误等事件信息
  • 图数据库适合来处理社交网络(近几年非常热)

1.3.数据模型的转变

三、大数据存储——HBase_第1张图片

                                           关系型数据模型

NoSQL 面向聚合 : 把一组相互关联的対象组为一个整体单元来操作, 而 这个单元就叫聚合。
三、大数据存储——HBase_第2张图片

                                          NoSQL数据模型

2.HBASE

2.1.Hbase是什么

        HDFS只解决了存储的问题,但如过需要查询,那么就引入了BigTable(倒排索引)。HDFS是谷歌GFS开源,而Hbase是Google的Bigtable开源,Hbase数据基于HDFS上进行存储,完成面向列族的半结构化数据存储。

三、大数据存储——HBase_第3张图片

 2.2.Hbase实践

        在电商系统中,常见的需求是统计上亿用户浏览记录、下单记录以及某商品的转化率。

在传统数据库中,需要关联查询多张大数据量的表。

三、大数据存储——HBase_第4张图片        三、大数据存储——HBase_第5张图片

 上百个分表的查询,读取压力大。                   Hbase只需通过行键加其他过滤条件实现一次读取

面向聚合思想:

三、大数据存储——HBase_第6张图片

 按照列族不同(列族可以根据热度不同设计),存储在DataNode服务器中,比如用户不经常修改自己的相关信息,而order和browser经常改变,那么我们在该HDFS服务器中,可以用一个文件存储user(列族),几个文件存储order(列族),而更多的文件去存储browser。

2.3.HBase列式存储模型

三、大数据存储——HBase_第7张图片

 时间戳:在Hbase中不进行修改,通过追加一行,根据时间戳进行区分。

如果我们要命中一单元格,通过思维坐标[行键,列族,列限定符,时间戳]进行搜索。

2.4.Hbase架构

三、大数据存储——HBase_第8张图片三、大数据存储——HBase_第9张图片

  • Client客户端:通过库函数,与Master(管理操作)、RegionServer(数据读写操作)通信
  • Master服务器:充当管家的作用
  • RegionServer服务器:负责存储不同的Region
  •  Zookeeper:维护元数据总入口、记录Master地址;监控集群,对故障节点处理

        client端要与Zookeeper交互获取当前活跃的主节点Hmaster,每一个HRegionServer服务器存储了多个HRegion(分区),(文档是很长的表,我们先进行水平切分,从而形成的一个个HRegion),HRegion中存储多个Store,(每个列族为一个Store),当我们不停地往Store中写数据时,形成StoreFile,也即HFile,当数据写满时进行持久化存储到HDFS中,但是我们的HFile此时相对很小,为防止多次IO操作,先对其进行合并,当合并成128M时,也就是一个Block后,存储到DataNode中。(一个Region过大时,可以划分为多个Region存储,有HRgionServer进行管理)

2.5.Region分裂 及 StoreFile合并

三、大数据存储——HBase_第10张图片

2.6.负载均衡

三、大数据存储——HBase_第11张图片

 在一个HRegionServer中,Store共享一个HLog,防止还未存储就断电丢失,只有当数据写入日志后才能存入Store。

2.7.Hbase读写寻址

第一层ZooKeeper,记录存储ROOT的Rgion信息。

第二层ROOT,记录存储META的Region信息。

第三层META,记录存储用户数据的Rgion信息。

三、大数据存储——HBase_第12张图片

3.分布式CAP理论

一致性(Consistency):在一致的系统中,一旦客户端将值写入任何服务器并获得响应,那么后续的读客户端将从分布式系统中任何的服务器中读取到这个值
可用性(Availability):在可用系统中,客户端向服务器发送请求并且该服务器未崩溃,则该服务器必须最终响应客户端
分区容错性(Partition tolerance):除全部网络节点全部故障以外,所有子节点集合的故障都不允许导致整个系统不正确响应;即使部分的组件不可用,施加的操作也可以完成
一个数据存储系统不可能同时满足CAP,只能同时满足其两个特性CA/CP/AP
CA:满足一致性和高可用性
满足数据的一致性和高可用性,但没有可扩展性,如传统的关系型数据,基本上满足是这个解决方 案,如ORACLE , MYSQL 的单节点,满足数据的一致性和高可用性。
CP:满足一致性和分区性
满足数据的一致性和分区性,如Oracle RAC ,Sybase 集群。虽然Oracle RAC具备一点的扩展性, 但当节点达到一定数目时,性能(也即可用性)就会下降很快,并且节点之间的网络开销还在,需要实时同步各节点之间的数据。
AP:满足高可用性和分区性
在性能和可扩展性方面表现不错,但在数据一致性方面会用牺牲,各节点的之间数据同步没有那么 快,但能保存数据的最终一致性。NoSQL大多类是典型的AP类型数据库。

4.图数据库

三、大数据存储——HBase_第13张图片

图模型是图数据库表达图数据的抽象模型。目前主流图数据库采用的图模型主要包括资源描述框架(Resource Description Framework, RDF) 和属性图(Property Graph)两种。
  • 属性图是一个由顶点、边、以及顶点和边上的属性组成的图。
  • RDF提供了一个统一的标准来描述 Web 上的资源,可以指类 (class)、属性(property)、实例(Instance)等等,RDF 在形式上表示为 SPO(subject, predicate, object)三元组(triple),即(主语/主 体、谓语/属性、宾语/客体)。

三、大数据存储——HBase_第14张图片查询示例: 

单点查询涉及单个顶点或者边

邻居查询表现为检索给定顶点的所有边、检索某条边连接的顶点

路径遍历查询 可以探索邻居查询之外更大的图数据
子图匹配 要求从整个图中找出所有与给定的查询模板匹配的子图 

当要对图进行计算时,需要对图进行分割,如何分割是一个挑战。

你可能感兴趣的:(大数据技术基础学习笔记,大数据)