高级数据库结课论文_第1页
高级数据库结课论文_第2页
高级数据库结课论文_第3页
高级数据库结课论文_第4页
高级数据库结课论文_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、题目:基于HBase的数据存储与管理研究 TOC o 1-5 h z HYPERLINK l bookmark10 o Current Document 摘要1 HYPERLINK l bookmark16 o Current Document 一、概述1 HYPERLINK l bookmark20 o Current Document 二、研究背景1 HYPERLINK l bookmark24 o Current Document 三、HBase分布式数据库2 HYPERLINK l bookmark27 o Current Document 1、HBase与Hadoop及其组件的关系2

2、 HYPERLINK l bookmark33 o Current Document 2、HBase系统架构3 HYPERLINK l bookmark74 o Current Document 3、HBase存储结构5 HYPERLINK l bookmark96 o Current Document 4、HBase数据模型9 HYPERLINK l bookmark113 o Current Document 四、总结与建议12 HYPERLINK l bookmark117 o Current Document 五、主要参考文献12摘要在如今数据急剧膨胀的时代云计算应运而生,它为海量数据

3、的存储和处理提供了一 种新的解决方案,Hadoop作为Apache开源组织的一个分布式计算框架在很多商业应用 中得到实践,它可以使用户在不了解分布式系统底层细节的情况下,开发分布式程序对 大数据进行处理。Hbase数据库是基于Hadoop的Apache顶层项目,它是BigTable的 开源实现,是一个面向列的非结构化数据库。本文首先介绍了 Hadoop的子项目HDFS和MapReduce的作用以及对HBase数据的 支持性,然后依次阐述了 Hbase的主从式系统架构和Region集群中存储架构,介绍了 StoreFile的compact和splite过程,详细分析了 HLog、HFile和 K

4、eyValue存储格式的结 构。在此基础之上分析了 HBase表的逻辑模型及面向列的物理存储模型,总结HBase 中表的特点。本文还提出了 HBase在社交网站数据、电子商务数据和RDF数据存储和 管理方面的三个应用领域。最后提出HBase数据库存在的问题和解决策略。关键词:。二Mu 二 键HBase,数据库,存储结构,数据模型AbstractCloud computing comes into being with the data explosion.It provides a new solution for storaging and processing mass data. As

5、a open source distributed computing framework of Apache Hadoop has been proved to be available in many business applications. it can be used in distributed system in the case that users do not need to understand the underlying details.Users develope the distributed program to process the large data.

6、 The Hbase database is Apache top-level project based on Hadoop, it is an open source implementation of BigTable oriented to columns non-structural database.First part of this paper introduces the sub project of HDFS an MapReduce Hadoop and how they support the HBase.Then illustrate the master-slave

7、 storage system architecture of Hbase, a Region cluster and introduces the compacting and spliteing process of StoreFile. HLog, HFile and KeyValue storage structure format are analyzed in detail. Based on above works , the logic model and the physical storage model oriented to columns of HBase table

8、s are analyzed and a summary of the characteristics of HBase table also be provided. This paper proposes three application fields where HBase can be appied including the social networking site data, electronic commerce data and RDF data storage and management. At last some problems of HBase database

9、 and the solution strategy are proposed.KcyWOrds: HBase, database, storage structure, data model一、概述近年来全球互联网络的发展网民数量、网络应用数量都呈现了激增的态势。用户逐 渐由信息的被动接收者转变为信息的接收者和制造者。整个互联网生态系统中,用户贡 献内容成为数据的一个重要来源。除此之外,越来越多的数据在社交网站、电子商务网 站、搜索引擎网站等物理分隔的服务器上不断自动生成。面对庞大的、结构复杂的海量 数据的存储和读取问题,传统关系型数据库已经无法满足需求。此时,云计算作为一种 计算和存储能力

10、近乎无限、可靠性高、可伸缩性强的新技术迅速得到企业和学者们的重 视。网络将分散的计算机上的分布式数据库连接起来,用户的请求通过所有节点来处理, 大大提高了数据的读写能力。Hadoop就是一种用来存储和处理海量数据的开源云计算 系统。二、研究背景21世纪初,谷歌公司的几位年轻研究人员用廉价PC搭建了大型的MPP系统,成功解 决了搜索引擎所需要的大型文件系统的管理和操作问题,随后分别于2003年、2004年和 2006年在操作系统两个著名的学术会议SOSP和0SDI上发表了有关GFS(Google文件系 统)、MapReduce(编程环境)和BigTable(数据模型)的论文。这三篇奠基性的论文促

11、成了 Hadoop 的诞生。2004年,Cutting D和 C afarella M J 根据 GoogleLab 论文实施,取名 Hadoop。 从Hadoop 0.21开始HDFS和MapReduce成为独立的子项目。MapReduce是分布式并行计 算框架是Hadoop的核心。HDFS所起的作用就是使得每个服务器必须具备对数据的访问 能力。2006年,HBase(BigTable)分布式列存储数据库成为Hadoop子项目,它架构在HDFS 之上。同年,Ankur Khetrapal和Vinay Ganesh从技术要求、技术架构、技术评价标准以及 缺陷四个方面比较了 HBase和Hype

12、rtable这两种实现Big Table功能的开源数据库的技术 相似性、不同点和处理能力1。通过实验作者认为Hypertable(0.9.12)在主节点上运行 时会相对不稳定,在大于GB的数据读入时尤为明显。相比之下,HBase在单节点的运行 性能比Hypertable的可靠性更高。Craig Franke研究了基于HBase的分布式语义网数据管理系统。随着机器可理解的 语义描述越来越多地应用于服务搜索、发现和集成,网络中的计算数据资源越来越多。 作者研究和比较了云计算和传统的关系型数据库聚类技术基础上的两种方法RDF数据 分布式管理,设计了一种基于HBase和MySQL簇的分布式RDF数据存

13、储和查询方案,通 过实证研究验证了所提出的算法是有效的,也说明云计算在可扩展的语义web数据管理 方面有着巨大的潜力。Shoji Nishimura设计了一种基于位置服务的可扩展数据库-MD-Hbase3。基于位置的 服务和应用的增长产生了大规模的数据,适用于这种数据的管理系统在满足有效的实时 分析之外还要能适应数据的高插入率。基于键值的存储虽然能支持大规模的扩展操作, 但是不支持多属性查询功能,因此进行了改进。在键值存储结构之上建立多维索引结构, 底层的键值存储保证了系统的可插入性和容错性,上层的索引值保证了高效率的多维查 询处理。模型中的键值存储原型即为HBase。国内的学者也对HBase

14、做了相关探索。崔杰研究了基于Hadoop的海量数据存储平 台设计与开发囹。海量的海洋科学数据经过MapReduce计算以后按其K指作为行关键 字,使用HBase分布式数据库实现存储和管理海量数据功能。范建永研究了基于HBase 的矢量空间数据分布式存储和一种基于MapReduce的并行构建网格空间索引方法,大 大加快索引构建的处理速度。李桥兴利用分布式文件系统HBase的数据存储结构特征, 采用可拓学基元对异构数据集进行整合处理并存储在HBase数据库6。通过提取数据特 别是半结构化和非结构化数据的典型特征和属性取值并转换为基元后生成一个新的数 据集,为数据分析和数据解释提供一种新的实现方式。

15、三、HBase分布式数据库1、HBase与Hadoop及其组件的关系HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。 Hadoop是一个能够对海量数据分布式处理的平台,它的核心模块有:Hadoop Distributed FileSystem(HDFS)、Hadoop Mapreduce、Hadoop HBase 和 Hadoop ZooKeeper o HBase 对应Google云计算系统的BigTable,目标是存储和处理大型数据。其他组件的主要作 用、与Google云计算系统的对应关系以及对HBase的支持作用如表3.1所示:表3.1 Hadoo

16、p组件与HBase的关系Hadoop作用对HBase的支持对应的Google云计算系统Hadoop HDFS为整个Hadoop平台提供数据的存储、管理和错误处理功能高可靠的底层存 储支持Google GFSHadoop MapReduce基于映射和化简思想,支持大 规模数据集的并行运算高性能的计算能 力GoogleMapReduceHadoop ZooKeeper解决分布式集群中应用系统 的一致性问题。它能提供基于 类似于文件系统的目录节点树方式的数据存储稳定服务和failover 机制GoogleChubby基于以上各组件的支持,可将HBase数据库的特点总结如下:1、高可靠性:作为底层存储

17、支持平台,HBase的很多数据存储在HDFS平台中。 HDFS平台以数据备份技术作为基础,提出了一种数据备份模型以适应云存储的需求。 副本是一种提高数据访问效率与容错性能力的技术,能够在原始数据丢失的时候,帮助 用户恢复数据。2、高效性:MapReduce的分布式编程模型系统来管理多个大规模计算过程,提高 了计算效率。3、实时性:HBase作为数据存储引擎能够为大数据提供实时的读/写操作,但根据 实际情况来看,HBase在实时的数据写入性能上优于查询性能。2、HBase系统架构HBase为主从式架构,由一个Master节点、多个Region server节点和客户端3部分组 成.Master节

18、点作为HBase的中心,管理整个集群中的所有个Region server,监控每个 表服务器的运行情况等7。Region server接收来自Master分配的子表、处理客户端的读写 请求、缓冲区回收、压缩和分Region server等功能。Client主要负责查找用户子表所在 的Region server地址信息。HBase系统中还包括一个用于监控集群状态的ZooKeeper集 群。ZooKeeper集群保存着HBase数据库元数据所在节点的IP地址,客户端通过 ZooKeeper集群找到元数据,进而找到需要访问的Region servero最后Region server还要 和HDFS通

19、信,将文件存储在其中。图3.1 HBas e系统架构(1)Master 节点HBase中可以存在多个Master节点,但其中没有单点问题。因为HBase中可以启动 多个HMaster,但通过Zookeeper的Master Election即选举机制保证总有一个Master运行。 Master节点不存储HBase中的任何数据,它负责HBase中表和Region的管理,具体如 下:(a)管理用户对table的增、删、改、查操作;(b)为Region server节点分配Region, Region用来存储HBase表中的数据;(c)对Region server进行负载均衡;调整Region分布(

20、d)迁移已失效Region server 上的Region 到其他Region servero(2)ZooKeeperZooKeeper是Apache Hadoop的一个正式子项目,它是一个分布式的、开源的分布 式程序协调服务,是Google Chubby的一个开源实现。它提供一个了类似文件系统的层 次命名空间,与文件系统不同的是,ZooKeeper的命名空间中的数据节点也可以有孩子 节点,就像文件系统中的一个文件同时也可以作为一个文件夹。HBase中ZooKeeper的作用有以下三个:(a)Master节点选举,保证集群中只有一个Master节点;(b)存储-ROOT-表地址、Master地

21、址;(c)监控所有Region server的状态,Region Server会把自己以Ephemeral方式注册 到到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态,进而将 Region server的上线和下线信息实时通知Mastero(3)Region server 节点Region server主要负责响应用户I/O请求,存储表文件,向HDFS文件系统中读写数 据,是HBase中最核心的模块。Master节点记录了当前所有Region的状态,包括已经 分配的Region分配给了哪些Region server,哪些Region还未分配。一个

22、Region在任何 时刻只能分配给一个Region servero当客户端请求写数据时,如果存在未分配的Region 并且有一个Region server上有可用的空间,主控节点就将这个Region分配给该Region server并通知它,分配的Region会随机生成一个Region标示符与之对应。Region server 负责维护Master节点分配给它的Region,处理客户端对Region的读写请求,Region server运行在Hadoop集群中的DataNode节点上。Region server内部管理了一系列Region对象,每个Region对应了 Table中的一个 Reg

23、ion, Region中由多个Store组成。每个Store对应了Table中的一个Column Family的存 储,每个Column Family就是一个集中的存储单元。(4)ClientClient主要有以下功能:(a)使用 HBase RPC 机制 与 HMaster 和 HRegionServer 进行通信(b)Client与HMaster进行通信进行管理类操作(c)Client与HRegionServer进行数据读写类操作3、HBase存储结构在HBase中,Region Server集群负责维护分配给它们的Region,响应客户端的数 据读写请求。数据在Region Server

24、集群中的组织方式如图3.2所示。由图3.2可以看出HBase的存储核心是由MemStore和StoreFile组成的。MemStore 是Sorted Memory Buffer。用户进行写操作时,数据首先存入MenStore中,当MenStore 满时,HBase将其数据写入文件中,这个文件的大小等于MenStore的阈值,这个文件 即StoreFile。随着用户的写操作不断进行,数据量不断增加,StoreFile增长到一定的阈 值时,触发合并操作,多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删 除。合并操作后,StoreFile形成越来越大的StoreFile

25、,单个StoreFile的大小超过一定阈 值后触发Split操作,把当前的Region Split成2个Region,父Region下线,两个新的 子Region会被Master分配到相应的Region server上,从而使得1个Region的压力得以 分流到2个Region上。具体操作过程如图3.3所示。图 3.3 StoreFile 的 compact 和 split 过程由此过程可知,HBase只是增加数据,更新和删除操作都是在合并阶段进行的。这 样用户写操作只需要进入内存即可立即返回,从而保证I/O高性能。HBase的所有数据文件都存储在Hadoop HDFS文件系统上,格式主要有两

26、种:HLog 和 HFile。(1)HLog在分布式环境中,系统的容错能力是一个很重要的指标。在HBase中,一旦RegionServer意外退出,MemStore中的内存数据就会丢失,因此引入了 Hlog。HLog是一个预读式日志(Write Ahead Logging)。每个Region Server中都有一个 HLog对象,每次用户操作写入MemStore的同时也会写一份数据到Hlog文件。类比于 面向关系数据库的日志文件,当HRegion Server意外终止后,HMaster会先处理遗留的 HLog文件,Replay HLog中的数据到MemStroe中,然后flush到StoreF

27、ile中,完成数 据恢复。HLog文件结构如图所示:图3.4 HLog文件结构HLog文件就是一个普通的Hadoop Sequence File。其中HLogKey中记录了写入数 据的归属信息,包括表名、region名、顺序号和写入时间。顺序号的起始值为0或者最 近一次存入文件系统的顺序号。HFileHFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装, 即StoreFile底层就是HFile。HFile的存储格式如下图所示:DataDataDataMetaMetaFile Infodata indexmeta indexTrailerMagi cK

28、eyValueKeyValueKeyValueKey ValueKeyValueKeyValueKeyValue图3.5 HFile的存储格式Data Block: HBase I/O 的基本单元,存储 KeyValue数据。Meta Block:可选快,保存Bloom Filter信息等,Bloom Filter可以用来判断一个Row Key是否在这个HFile中。File Info:保存HFile的基本信息Data Block Index: Data Block的索弓I,记录每个Data Block的起始位置、大小及Data Block 中的第一个 Row Key。Meta Block I

29、ndex: Meta Block的索引,记录每个Meta Block的起始位置、大小等。Trailer:记录 File Info、Data Block Index 和 Meta Block Index 的起始位置。当读取一个HFile文件时,首先读取Trailer块,通过Trailer 将Data Block Index的 内容保存到内存中,这样,当检索某个Row Key时,HBase只需从内存中找到Row Key 所在的Data Block,然后将这个Data Block读入内存,进而找到所需的Row Key。Data Block的大小可以在创建表的时候通过参数指定,默认值为64KB。通过上

30、述读取过程可以看到,Data Block的大小将会对记录的查询操作产生一定的 影响,较大的Data Block有利于顺序的scan操作,较小的Data Block有利于随机查询。(3) KeyValue键值对分析KeyValue即“键-值对”,是HBase数据存储的核心,由图3.6可以看到,Data Block 中存储的KeyValue是连续排列的,每个KeyValue对就是一个简单的byte数组。这个byte 数组里面包含了很多项,并且有固定的结构。它包含四个字段,分别是KeyLength、ValueLength、Key 和Value,其结构如图3.7 所示。1 Key 1Key Value

31、Value LengthRow LengthRowColumn Family LengthColumn FamilyColumn QualifierTime StampKey TypeValue4B4B2B1B8B1B图3.6 KeyValue的结构KeyLength和ValueLength:两个固定的长度,分别代表Key和Value的长度Key部分:Row Length是固定长度的数值,表示RowKey的长度,Row字段存储Row Key的名字Column Family Length是固定长度的数值,表示Family的长度Column Family字段存储列族名,Column Qualifi

32、e字段存储列名,Time Stamp和Key Type (Put/Delete)是两个固定长度的数值Value存储二进制数据。KeyValuef作为一个整体不会被分割存储到多个Data Block中,即使一个KeyValue的 大小超过了 DataBlock的大小,它仍然被视作一个连贯的块读出。4、HBase数据模型关系型数据库围绕着表、列和数据类型来构建数据模型的,数据的形态都有严格的 规则。HBase的数据模型设计没有严格的形态,数据记录的列可以不一致、大小不确定、 可以没有类型的半结构化数据圆。针对半结构化数据,HBase在设计逻辑模型时会影响 到其物理模型的设计。同时,物理模型的不同也

33、会影响到逻辑模型。逻辑模型HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family), 列的定义为::o由行和列所确定的单元格称为cell,HBase 的更新操作都有时间戳,对于每个cell,HBase将存储指定个数的最新版本,客户端默 认获取最新版本的内容。Cell没有数据类型,只能存放字节数组(byte array)。HBase中 的表有3个基本的列,分别是Row Key、Timestamp和Column Family,其中Row Key是 主键,表中的各行按照Row Key的字节序排序。如表3.2所示为HBase表的逻辑视图。表3.2 HBase表的逻辑视图

34、RowKeyTimeStam p列族 “contens”列族“ anchor”htmlmy.look.can.WWWt9CNNt8CNN.comt6deft5abct3 表3.2所示为HBase的表中的一行记录,其Row Key为“n.www”。Row Key:行键,Table的主键,Table中的记录按照Row Key排序。Row Key格式 为字节数组,任何能够转换为字节数组的元素都可以作为RowKey,Row Key的大小并 不固定,最大长度为64KB。Timestamp:时间戳,用于管理cell的版本,当向表中插入数据的时候HBase自 动生成TimeStamp,每个cell中,不同版

35、本的数据按照时间倒序排序,即最新的数据排 在最前面。每次数据操作对应的时间戳,可以看作是数据的v ersion numberc) Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一 个Column Family中可以由任意多个Column组成,Column Family必须在创建表的时候预 先定义,一旦表创建完成列族就不能更改了,但列族中的列可以根据需要随时添加即 Column Family支持动态扩展,无需预先定义Column的数量以及类型,因此HBase可以 支持表中的两行记录有不同的列。在HBase中,对数据库中的表的访问控制、对内存和

36、 磁盘的使用情况统计都是在列族层面进行的。在HBase中,要访问表中的记录,只有三种方式:(a)通过指定某一行记录的Row Key访问;(b)通过指定Row Key的范围访问满足条件的一些记录;(c)扫描整张表。(2)物理模型HBase中的表由行和列组成,列按照列族分组,这个在逻辑模型中表现为映射的映 射。列族在物理模型中的表现为它的每个列族在硬盘上存储为各自的HFile文件。这种物 理上的隔离允许在列族底层HFile层面上分别进行管理。HBase的数据按照键值对存储在HFile里。HFile是二进制文件,一行中一个列族的数 据不一定存放在同一个HFile里,可能分散在多个HFile里。但是一

37、行中列族的数据物理 上是存放在一起的。如果单元内没有数据,HBase是不会存储任何东西的。当执行读操 作时HBase不需要读出一行中所有的数据,只需要读取用到列族的数据。面向列意味着 当检索指定单元时,HBase不需要读占位符记录。这两个物理细节有利于稀疏数据集合 的高效存储和快速读取。上表3.2的逻辑视图对应的物理视图如表3.3、表3.4、所示,表示物理上按列存储, 保存了数据的多个版本。表3.3表的物理模型(列族contents)Row KeyTime Stamp列族 “contents”列名值n.wwwt6contents: htmldefn.wwwt5contents: htmlabc

38、n.wwwt3contents: html 表3.4表的物理模型(列族anchor)Row KeyTimeStamp列族“ anchor”列名值n.wwwt9anchor: CNNn.wwwt8anchor: mv.look.caCNN.com由HBase表的逻辑模型和物理模型,可将其特点总结如下:a)大:一个表可以有上亿行,上百万列b)面向列:面向列(族)的存储和权限控制,列(族)独立检索。c)稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。5、HBase数据库的应用HBase数据库在处理海量数据方面可以有效地改进传统数据库对于过亿记录数据表 的查询、更新等操作

39、效率低下的问题,减少对网络资源的消耗、提高数据存储效率和访 问的实时性。这些特点是HBase在以下领域的应用有很好的前景:(1)社交网站的数据管理社交网站是如今互联网系统数据来源的主要入口。信息由庞大的普通用户群体提供, 数量大、结构复杂,同时这些信息是具有标签性的含义的,传统的数据库很难对数据进 行存储和处理。利用HBase,可以将不同的数据根据其语义特点放在不同的Region Server, 然后利用一个全局HBase保存全局信息,记录所有的Region Server、区域信息及信息内 容结构等。这样通过对数据的整合处理可以实现简单的数据分类,提高查询效率。(2)电子商务网站的数据管理伴随

40、着中国电子商务的发展海量的交易记录随之产生,如何有效地对这些交易记录 进行存储、查询、分析是一个巨大的挑战冏。关系数据库无法满足对海量数据的高效率 存储,也无法满足动态扩展和高可用性的需求。基于Hadoop平台,可以设计采用HBase 数据库的四层系统,从而实现海量交易记录查询系统。(3)RDF数据存储系统随着语义网的提出RDF作为一种用于表达语义信息,能在应用间交换且不丧失语 义的通用框架得到了广泛关注。RDF在提供灵活、强大的数据表述能力的同时也带来了 数据存储和查询的问题Un。有研究人员就试图将云计算与语义网结合起来以期解决海量RDF数据存储和查询难题。四、总结与建议大数据的产生将人们带

41、入了一个新的发展阶段。企业面临着新的挑战和机遇,学者 面临着新的研究问题,他们都在试图能乘上这辆快车。若要达到应用级,首先就要解决 存储级的问题,云计算平台Hadoop应运而生,本文重点介绍了 Hadoop系统的子项目 HBase数据库。首先介绍了 Hadoop各组件与HBase的关系。作为Hadoop的核心技术,HDFS和 MapReduce对HBase有着重要的支持作用。HDFS是一个高容错的文件系统,支持高吞 吐量的应用程序数据访问,是Hbase的基础层,对提高HBase的可靠性至关重要。 MapReduce是一种适合对数据进行分布式计算的计算模式,通过提供Map和Reduce函 数完成数据的并行式计算。然后本文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论