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

网友投稿 778 2023-04-07

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

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

4.1概述

***是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化松散数据。***与传统数据库的区别数据类型上的区别,它把数据存储为未经解释的字符串数据操作,没有像关系型数据库那样的复杂数据操作,通常采用单表的主键查询。存储模式,关系型数据库是采用行进行存储的,但是***是采用列存储的。数据索引,***只有一个索引,就是行键。数据维护,***中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧的版本任然保存。可伸缩性,关系型数据库很难实现横向扩展,纵向扩展也很有限。而***是为了实现灵活的水平扩展而开发的。但是存在自身的局限性,也就是不支持事务,无法实现跨行的原子性。

4.2***访问接口

***提供Native Java API、*** Shell、Thrift Gateway、REST Gateway、Pig、Hive等多种访问方式。

4.3***数据模型

***是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳。列族支持动态扩展。表,采用表来组织数据,表由行和列组成。行,访问表中行的方式:通过单个行键访问通过一个行键的区间来访问全表扫描列族, 它是基本的控制访问单元列限定符,列族中的数据通过列限定符来定位,不许事先定义,没有数据类型,但是常常被视为字节数组单元格, 通过行键、列族、列限定符确定一个单元格。单元格中没有数据类型,总是被视为字节数组,每个版本对应一个时间戳。时间戳, 时间戳一般是64位整型数据坐标,由四个定位,行键、列族、列限定符、时间戳。概念视图,看起来是像是由许多行组成的。物理视图, 但是在物理层面,它是采用了基于列的存储方式。按照列族分开存放,里面包括行键和时间戳。面向列存储,行式数据库适合于小批量的数据处理;列式数据库适合面向批量数据处理和即席查询。优点是可以降低I/O开销。

4.4***的实现原理

***的功能组件,主要有三个功能组件,库函数,链接到每个客户端;Master主服务器;许多个Region服务器。Region服务器负责存储和维护分配给自己的Region,处理来自客户端的读写请求。主服务器,Master负责管理和维护***表的分区信息。Hbase客户端并不依赖于Master而是借助Zookeeper来获得Region的位置。表和Region, Region是负载均衡和数据分发的基本单位。,每个Region的大小是100M~200MB,同一个Region是不会被拆分到多个Region服务器上的。Region的定位,每个Region都有一个的RegionID来标识它的唯一性,一个Region标识符可以表示为“表名+开始主键+RegionID”。映射表包括两项内容,一个是Region的标识符,另一个是Region服务器标识,也称为“元数据表”,又名“.META.表”。如果元数据表过多了,就会产生根数据表,-ROOT-表,客户访问用户数据前,首先访问Zookeeper。

4.5***运行机制

客户端是访问***的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续访问过程。Zookeeper服务器并非一台单一的机器,可能由多台机器构成的集群来提供稳定可靠的协同服务。Zookeeper中保存了根数据表和Master的地址。Master, Master服务器主要负责Region的管理工作。管理用户对于表的增加、删除、修改、查询等操作。实现不同Region服务器之间的负载均衡在Region分裂合并后,负责重新调整Region的分布对于发生故障失效的Region服务器上的Region进行迁移Region服务器,是***最核心的模块,负责维护分配给自己的Region,并且响应读写请求。***本身并不具备数据复制和维护数据副本功能,而是HDFS可以为***提供这些支持。

1. Region服务器的工作原理

Region服务器中管理了一系列的Region对象和一个HLog文件,其中HLog文件是磁盘上面的记录文件,记录着所有的更新操作。每个Region对象又是由多个Store组成,每个Store对应表中的的一个列族存储,每个Store又包含一个MemStore和若干个StoreFile;其中MemStore是内存中的缓存,保存最新更新的数据;StoreFile是磁盘中的文件,这些文件都是B树结构,底层实现方式是HDFS的HFile

2. Store的工作原理

MemStore是排序的内存缓冲区,当MemStore缓存满时,就会刷新到磁盘中的StoreFile文件中。随着多个StoreFile合并称为一个大的文件,当文件超过一个阈值的时候,会触发一个文件分裂操作,同时当前一个父Region会分裂成两个子Region,新分裂出的两个子Region被Master分配到相应的Region服务器上。

3. HLog的工作原理

***采用HLog来保证系统发生故障时能够发生故障时能够恢复到正常状态。每个Region服务器中配置一个HLog文件,它是一种预写式日志,也就是被写入日志后才能够写入MemStore缓存。

4. ***常见的Shell

hbase shell 进入Shell环境create 't1', {NAME => 'f1', VERSIONS => 5} 创建表t1,列族f1,列族版本号为5create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'} 创建表t1,三个列族,或则使用命令代替create 't1', 'f1', 'f2', 'f3'list 列出***所有的表信息put 't1', 'row1', 'f1:c1', 'value1', 1421822284898向表中t1中行row1和列f1:c1对应的单元格中添加数据value1,时间戳为后面那串数字。get用来获取数据scan用来浏览表alter修改列族模式alter 't1', NAME => 'f1'向表t1中添加列族f1alter 't1', NAME => 'f1' METHOD => 'delete'删除表中列f1count统计表中行数describe 't1'显示表的相关信息drop删除表shutdown关闭集群

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:构建 MariaDB Galera Cluster 分布式数据库集群(二)
下一篇:轻松学习分布式|系列3|分布式数据库。
相关文章