分布式数据库HBa.ppt

上传人:wuy****n92 文档编号:74775078 上传时间:2023-02-28 格式:PPT 页数:99 大小:6.55MB
返回 下载 相关 举报
分布式数据库HBa.ppt_第1页
第1页 / 共99页
分布式数据库HBa.ppt_第2页
第2页 / 共99页
点击查看更多>>
资源描述

《分布式数据库HBa.ppt》由会员分享,可在线阅读,更多相关《分布式数据库HBa.ppt(99页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 大数据技术及应用 信息科学与技术学院 1石家庄铁道大学 信息科学与技术学院第四章第四章分布式数据库分布式数据库HBase大数据技术及应用大数据技术及应用 大数据技术及应用 信息科学与技术学院 2提纲提纲4.1概述概述4.2HBase访问接口访问接口4.3HBase数据模型数据模型4.4HBase的实现原理的实现原理4.5HBase运行机制运行机制4.6HBase应用方案应用方案4.7HBase编程实践编程实践 大数据技术及应用 信息科学与技术学院 34.1概述概述4.1.1从从BigTable说起说起4.1.2HBase简介简介4.1.3HBase与传统关系数据库的对比分析与传统关系数据库的

2、对比分析 大数据技术及应用 信息科学与技术学院 44.1.1从从BigTable说起说起主流解决方案厂商的发展策略及现状 大数据技术及应用 信息科学与技术学院 5主流解决方案Google云计算数据存储在数据存储在“云云”中中数据访问不受地理位置限制数据访问不受地理位置限制数据能够很方便的共享数据能够很方便的共享 大数据技术及应用 信息科学与技术学院 6Google云计算技术具体包括:云计算技术具体包括:Google文件系统文件系统海量数据分布存储技术海量数据分布存储技术(GFS)、分布式计算编程模型分布式计算编程模型MapReduce、分布式锁服务分布式锁服务Chubby分布式结构化数据存储系

3、统分布式结构化数据存储系统Bigtable等。等。主流解决方案主流解决方案GoogleGoogle云计算云计算 大数据技术及应用 信息科学与技术学院 7Google需要一个支持海量存储的文件系统购置昂贵的分布式文件系统与硬件?Google设计GFS的动机是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统?7 大数据技术及应用 信息科学与技术学院 8为什么不使用当时现存的文件系统?Google所面临的问题与众不同不同的工作负载,不同的设计优先级(廉价、不可靠的硬件)需要设计与Google应用和负载相符的文件系统Google设计GFS的动机8一个适用于大规模分布式数据处理相关应用的,可扩展

4、的分一个适用于大规模分布式数据处理相关应用的,可扩展的分布式文件系统。它基于普通的不算昂贵的硬件设备,实现了布式文件系统。它基于普通的不算昂贵的硬件设备,实现了容错的设计,并且为大量客户端提供极高的聚合处理性能。容错的设计,并且为大量客户端提供极高的聚合处理性能。GFS 大数据技术及应用 信息科学与技术学院 9GFS的假设与目标硬件出错是正常而非异常系统应当由大量廉价、易损的硬件组成必须保持文件系统整体的可靠性主要负载是流数据读写主要用于程序处理批量数据,而非与用户的交互或随机读写数据写主要是“追加写”,“插入写”非常少需要存储大尺寸的文件存储的文件尺寸可能是GB或TB量级,而且应当能支持存储

5、成千上万的大尺寸文件9 大数据技术及应用 信息科学与技术学院 10将文件划分为若干块(Chunk)存储每个块固定大小(64M)通过冗余来提高可靠性每个数据块至少在3个数据块服务器上冗余数据块损坏概率?通过单个master来协调数据访问、元数据存储结构简单,容易保持元数据一致性无缓存GFS的设计思路10 大数据技术及应用 信息科学与技术学院 11GFS将容错的任务交给文件系统完成,利用软件的方法解决系统可靠性问题,使存储的成本成倍下降。GFS将服务器故障视为正常现象,并采用多种方法,从多个角度,使用不同的容错措施,确保数据存储的安全、保证提供不间断的数据存储服务。GFS架构是怎样的?大数据技术及

6、应用 信息科学与技术学院 12GFS系统架构Client(客户端):应用程序的(客户端):应用程序的访问接口访问接口Master(主服务器):(主服务器):管理节点管理节点,在逻辑上只有一个,保存系统的元数据,负责整,在逻辑上只有一个,保存系统的元数据,负责整个文件系统的管理个文件系统的管理ChunkServer(数据块服务器):负责具体的(数据块服务器):负责具体的存储存储工作。数据以文件的形式存储在工作。数据以文件的形式存储在ChunkServer上上控制流控制流状态流状态流IO并行并行 大数据技术及应用 信息科学与技术学院 13需要存储的数据种类繁多:Google目前向公众开放的服务很多

7、,需要处理的数据类型也非常多。包括URL、网页内容、用户的个性化设置在内的数据都是Google需要经常处理的 海量的服务请求:Google运行着目前世界上最繁忙的系统,它每时每刻处理的客户服务请求数量是普通的系统根本无法承受的 商用数据库无法满足Google的需求:一方面现有商用数据库设计着眼点在于通用性,根本无法满足Google的苛刻服务要求;另一方面对于底层系统的完全掌控会给后期的系统维护、升级带来极大的便利 设计动机分布式结构化数据表Bigtable 大数据技术及应用 信息科学与技术学院 14设计动机与目标基本目标基本目标高可用性高可用性 Bigtable设计的重要设计的重要目标之一就是

8、确保几目标之一就是确保几乎所有的情况下系统乎所有的情况下系统都可用都可用 广泛的适用性广泛的适用性 Bigtable是为了满足是为了满足系列系列Google产品而产品而非特定产品存储要求非特定产品存储要求 简单性简单性 底层系统简单性既可底层系统简单性既可减少系统出错概率,减少系统出错概率,也为上层应用开发带也为上层应用开发带来便利来便利 很强的可扩展性很强的可扩展性 根据需要随时可以加根据需要随时可以加入或撤销服务器入或撤销服务器 BigTable为谷歌旗下的搜索、地图、财经、打印、以及社交网站为谷歌旗下的搜索、地图、财经、打印、以及社交网站Orkut、视、视频共享网站频共享网站YouTub

9、e和博客网站和博客网站Blogger等业务提供技术支持。等业务提供技术支持。大数据技术及应用 信息科学与技术学院 154.1.1从从BigTable说起说起BigTable是一个分布式存储系统是一个分布式存储系统,起初用于解决典型的互联网搜索问题,起初用于解决典型的互联网搜索问题,利用谷歌提出的利用谷歌提出的MapReduce分布式并行计算模型来处理海量数据分布式并行计算模型来处理海量数据,使用使用GFS作为底层数据存储,采用作为底层数据存储,采用Chubby提供协同服务管理,提供协同服务管理,可以扩展到可以扩展到PB级别的数据和上千台机器,具备广泛应用性、可扩展性、高性能级别的数据和上千台机

10、器,具备广泛应用性、可扩展性、高性能和高可用性等特点。和高可用性等特点。建立互联网索引建立互联网索引1爬虫持续不断地抓取新页面,这些页面每页一行地存储到爬虫持续不断地抓取新页面,这些页面每页一行地存储到BigTable里里2MapReduce计算作业运行在整张表上,生成索引,为网络搜索应用做准备计算作业运行在整张表上,生成索引,为网络搜索应用做准备搜索互联网搜索互联网3用户发起网络搜索请求用户发起网络搜索请求4网络搜索应用查询建立好的索引,从网络搜索应用查询建立好的索引,从BigTable得到网页得到网页5搜索结果提交给用户搜索结果提交给用户 大数据技术及应用 信息科学与技术学院 16数据模型

11、 Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引 Bigtable对存储在其中的数据不做任何解析,一律看做字符串Bigtable的存储逻辑可以表示为:(row:string,column:string,time:int64)string 大数据技术及应用 信息科学与技术学院 17数据模型数据模型 行 Bigtable的行关键字可以是任意的字符串,但是大小不能超过64KB。Bigtable和传统的关系型数据库有很大不同,它不支持一般意义上的事务,但能保证对于行的读写操作具有原

12、子性(Atomic)表中数据都是根据行关键字进行排序的,排序使用的是词典序。一个典型实例,其中就是一个行关键字。不直接存储网页地址而将其倒排是Bigtable的一个巧妙设计。带来两个好处:同一地址域的网页会被存储在表中的连续位置,有利于用户查找和分析 倒排便于数据压缩,可以大幅提高压缩率 大数据技术及应用 信息科学与技术学院 18由于规模的问题,单个的大表不利于数据处理,因此Bigtable将一个表分成了多个子表,每个子表包含多个行。子表是Bigtable中数据划分和负载均衡的基本单位。大数据技术及应用 信息科学与技术学院 19数据模型 列 Bigtable并不是简单地存储所有的列关键字,而是

13、将其组织成所谓的列族每个族中的数据都属于同一个类型,并且同族的数据会被压缩在一起保存。引入了列族的概念之后,列关键字就采用下述的语法规则来定义:族名:限定词(family:qualifier)族名必须有意义,限定词则可以任意选定 图中,内容、锚点都是不同的族。而和则是锚点族中不同的限定词 族同时也是Bigtable中访问控制(Access Control)基本单元,也就是说访问权限的设置是在族这一级别上进行的 大数据技术及应用 信息科学与技术学院 20数据模型 时间戳 l 为了简化不同版本的数据管理,Bigtable目前提供了两种设置:l一种是保留最近的N个不同版本,图中数据模型采取的就是这种

14、方法,它保存最新的三个版本数据。l另一种就是保留限定时间内的所有不同版本,比如可以保存最近10天的所有不同版本数据。失效的版本将会由Bigtable的垃圾回收机制自动处理 Google的很多服务比如网页检索和用户的个性化设置等都需要保存不同时间的数据,这些不同的数据版本必须通过时间戳来区分。大数据技术及应用 信息科学与技术学院 21系统架构 一个分布式的任务调度器,主要被用来处理分布式系统队列分组和任务调度 Bigtable数据库的架构,由主服务器和分服务器构成,把数据库看成是一张大表,那么可数据库的架构,由主服务器和分服务器构成,把数据库看成是一张大表,那么可将其划分为许多基本的小表,这些小

15、表就称为将其划分为许多基本的小表,这些小表就称为tablet,是,是bigtable中最小的处理单位了。中最小的处理单位了。主服务器负责将主服务器负责将Tablet分配到分配到Tablet服务器、检测新增和过期的服务器、检测新增和过期的Tablet服务器、平衡服务器、平衡Tablet服务器之间的负载、服务器之间的负载、GFS垃圾文件的回收、数据模式的改变(例如创建表)等。垃圾文件的回收、数据模式的改变(例如创建表)等。Tablet服务器负责处理数据的读写,并在服务器负责处理数据的读写,并在Tablet规模过大时进行拆分。规模过大时进行拆分。Bigtable使用集群管理系统来调度任务、管理资源、

16、监测服务器状态并处理服务器故障。使用集群管理系统来调度任务、管理资源、监测服务器状态并处理服务器故障。BigTable将数据存储分为两部分:最近的更新存储在内存中,较老的更新则以将数据存储分为两部分:最近的更新存储在内存中,较老的更新则以SSTable的的格式存储在格式存储在GFS,后者是主体部分,不可变的数据结构。写操作的内容插入到,后者是主体部分,不可变的数据结构。写操作的内容插入到memtable中,当中,当memtable的大小达到一个阈值时就冻结,然后创建一个新的的大小达到一个阈值时就冻结,然后创建一个新的memtable,旧的就,旧的就转换成一个转换成一个SSTable写入写入GF

17、S。使用分布式的锁服务使用分布式的锁服务Chubby来保证集群中主服务器的唯一性、保存来保证集群中主服务器的唯一性、保存Bigtable数据的引导数据的引导区位置、发现区位置、发现Tablet服务器并处理服务器并处理Tablet服务器的失效、保存服务器的失效、保存Bigtable的数据模式信息、的数据模式信息、保存存取控制列表。保存存取控制列表。大数据技术及应用 信息科学与技术学院 22系统架构 在Bigtable中Chubby主要有以下几个作用:1.选取并保证同一时间内只有一个主服务器(Master Server)2.获取子表的位置信息3.保存Bigtable的模式信息及访问控制列表 另外在

18、Bigtable的实际执行过程中,Google的MapReduce等技术也被用来改善其性能 大数据技术及应用 信息科学与技术学院 23系统架构 Bigtable主要由三个部分组成:客户端程序库(Client Library),一个主服务器(Master Server)和多个子表服务器(Tablet Server)客户访问Bigtable服务时,首先要利用其库函数执行Open()操作来打开一个锁(实际上就是获取了文件目录),锁打开以后客户端就可以和子表服务器进行通信 和许多具有单个主节点分布式系统一样,客户端主要与子表服务器通信,几乎不和主服务器进行通信,这使得主服务器的负载大大降低 主服务主要

19、进行一些元数据操作以及子表服务器之间负载调度问题,实际数据是存储在子表服务器上 大数据技术及应用 信息科学与技术学院 244.1.2HBase简介简介HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过算机集群处理由超过10亿行数据和数百万列元素组成的数

20、据表亿行数据和数百万列元素组成的数据表Hadoop生态系统中HBase与其他部分的关系 大数据技术及应用 信息科学与技术学院 254.1.2HBase简介简介HBase和和BigTable的底的底层层技技术对应术对应关系关系BigTableHBase文件存文件存储储系系统统GFSHDFS海量数据海量数据处处理理MapReduceHadoop MapReduce协协同服同服务务管理管理ChubbyZookeeper 大数据技术及应用 信息科学与技术学院 264.1.2HBase简介简介关系数据库已经流行很多年,并且关系数据库已经流行很多年,并且Hadoop已经有了已经有了HDFS和和MapRed

21、uce,为什么需要,为什么需要HBase?Hadoop可以很好地解决大规模数据的离线批量处理问题,但受限于可以很好地解决大规模数据的离线批量处理问题,但受限于HadoopMapReduce编程框架的高延迟数据处理机制,无法满足大规模数据实时处理应编程框架的高延迟数据处理机制,无法满足大规模数据实时处理应用的需求用的需求HDFS面向批量访问模式,不是随机访问模式面向批量访问模式,不是随机访问模式传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能问题(分库分表也不能很好解决)问题(分库分表也不能很好解决)传统关系

22、数据库在数据结构变化时一般需要停机维护;空列浪费存储空间传统关系数据库在数据结构变化时一般需要停机维护;空列浪费存储空间因此,出现了一类面向半结构化数据存储和处理的高可扩展、低写入因此,出现了一类面向半结构化数据存储和处理的高可扩展、低写入/查询延迟的查询延迟的系统,例如,键值数据库、文档数据库和列族数据库(如系统,例如,键值数据库、文档数据库和列族数据库(如BigTable和和HBase等)。等)。HBase已经成功应用于互联网服务领域和传统行业的众多在线式数据分析处理系已经成功应用于互联网服务领域和传统行业的众多在线式数据分析处理系统中。统中。大数据技术及应用 信息科学与技术学院 274.

23、1.3HBase与传统关系数据库的对比分析与传统关系数据库的对比分析HBase与传统的关系数据库的区别主要体现在以下几个方面:与传统的关系数据库的区别主要体现在以下几个方面:(1)数据类型:)数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储关系数据库采用关系模型,具有丰富的数据类型和存储方式,方式,HBase则采用了更加简单的数据模型,它把数据存储为未经解则采用了更加简单的数据模型,它把数据存储为未经解释的字符串。释的字符串。(2)数据操作:)数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂的多关系数据库中包含了丰富的操作,其中会涉及复杂的多表连接。表连接。HBase操作则不存

24、在复杂的表与表之间的关系,只有简单的操作则不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等,因为插入、查询、删除、清空等,因为HBase在设计上就避免了复杂的表在设计上就避免了复杂的表和表之间的关系。和表之间的关系。(3)存储模式:)存储模式:关系数据库是基于行模式存储的。关系数据库是基于行模式存储的。HBase是基于列存储是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的。的,每个列族都由几个文件保存,不同列族的文件是分离的。大数据技术及应用 信息科学与技术学院 284.1.3HBase与传统关系数据库的对比分析与传统关系数据库的对比分析(4)数据索引:)数据索

25、引:关系数据库通常可以针对不同列构建复杂的多个索引,以关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。提高数据访问性能。HBase只有一个索引只有一个索引行键,通过巧妙的设计,行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,从中的所有访问方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来而使得整个系统不会慢下来(5)数据维护:)数据维护:在关系数据库中,更新操作会用最新的当前值去替换记录在关系数据库中,更新操作会用最新的当前值去替换记录中原来的旧值,旧值被覆盖后就不会存在。而在中原来的旧值,旧值被覆盖后就不会存在。而在

26、HBase中执行更新操作中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留然保留(6)可伸缩性:)可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也比较有关系数据库很难实现横向扩展,纵向扩展的空间也比较有限。相反,限。相反,HBase和和BigTable这些分布式数据库就是为了实现灵活的这些分布式数据库就是为了实现灵活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件数量来水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩实现性能的伸缩 大数据技术及应用 信息科学

27、与技术学院 294.2HBase访问接口访问接口HBase访问访问接口接口类类型型特点特点场场合合Native Java API最常最常规规和高效的和高效的访问访问方式方式适合适合Hadoop MapReduce作作业业并行批并行批处处理理HBase表数据表数据HBase ShellHBase的命令行工具,最的命令行工具,最简单简单的接口的接口适合适合HBase管理使用管理使用Thrift Gateway利用利用Thrift序列化技序列化技术术,支持支持C+、PHP、Python等多种等多种语语言言适合其他异构系适合其他异构系统统在在线访问线访问HBase表数据表数据REST Gateway解

28、除了解除了语语言限制言限制支持支持REST风风格的格的Http API访访问问HBasePig使用使用Pig Latin流式流式编编程程语语言来言来处处理理HBase中的数据中的数据适合做数据适合做数据统计统计Hive简单简单当需要以当需要以类类似似SQL语语言方式来言方式来访问访问HBase的的时时候候 大数据技术及应用 信息科学与技术学院 304.3HBase数据模型数据模型4.3.1数据模型概述数据模型概述4.3.2数据模型相关概念数据模型相关概念4.3.3数据坐标数据坐标4.3.4概念视图概念视图4.3.5物理视图物理视图4.3.6面向列的存储面向列的存储 大数据技术及应用 信息科学与

29、技术学院 314.3.1数据模型概述数据模型概述HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳列限定符和时间戳每个值是一个未经解释的字符串,没有数据类型每个值是一个未经解释的字符串,没有数据类型用户在表中存储数据,每一行都有一个可排序的行键和任意多的列用户在表中存储数据,每一行都有一个可排序的行键和任意多的列表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一起同一个列族里面的数据存储在一

30、起列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义列的数列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义列的数量以及类型,所有列均以字符串形式存储,用户需要自行进行数据类型转换量以及类型,所有列均以字符串形式存储,用户需要自行进行数据类型转换HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关只允许追加不允许修改的特性相关的)的)大数据技术及应用 信息科学与技术学院 324.3.2数据模型相关概念

31、数据模型相关概念表:表:HBase采用表来组织数据,表由行采用表来组织数据,表由行和列组成,列划分为若干个列族和列组成,列划分为若干个列族行:每个行:每个HBase表都由若干行组成,每表都由若干行组成,每个行由行键(个行由行键(rowkey)来标识。)来标识。列族:一个列族:一个HBase表被分组成许多表被分组成许多“列列族族”(ColumnFamily)的集合,它是)的集合,它是基本的访问控制单元基本的访问控制单元列限定符:列族里的数据通过列限定符列限定符:列族里的数据通过列限定符(或列)来定位(或列)来定位单元格:在单元格:在HBase表中,通过行、列族表中,通过行、列族和列限定符确定一个

32、和列限定符确定一个“单元格单元格”(cell),),单元格中存储的数据没有数据类型,总单元格中存储的数据没有数据类型,总被视为字节数组被视为字节数组byte时间戳:每个单元格都保存着同一份数时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进据的多个版本,这些版本采用时间戳进行索引行索引 大数据技术及应用 信息科学与技术学院 334.3.3数据坐标数据坐标HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此,中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此,可以视为一个可以视为一个“四维坐标四维坐标”,即,即行键行键,列族列族,列限定符列限定符,时

33、间戳时间戳键值“201505003”,“Info”,“email”,1174184619081“”“201505003”,“Info”,“email”,1174184620720“”大数据技术及应用 信息科学与技术学院 344.3.4概念视图概念视图 HBase数据的概念数据的概念视图视图行行键键时时间间戳戳列族列族contents列族列族n.wwwt5anchor:=”CNN”t4anchor:my.look.ca=CNN.comt3contents:html=.t2contents:html=.t1contents:html=.大数据技术及应用 信息科学与技术学院 354.3.5物理视图物

34、理视图 HBase数据的物理视图:基于列的存基于列的存储储列族contents行行键键时间时间戳戳列族列族n.wwwt3contents:html=.t2contents:html=.t1contents:html=.列族anchor行行键键时间时间戳戳列族列族n.wwwt5anchor:=”CNN”t4anchor:my.look.ca=CNN.com 大数据技术及应用 信息科学与技术学院 364.3.6面向列的存储面向列的存储 行式数据行式数据库库和列式数据和列式数据库库示意示意图图 大数据技术及应用 信息科学与技术学院 374.3.6面向列的存储面向列的存储 行式存行式存储结储结构和列式

35、存构和列式存储结储结构构 大数据技术及应用 信息科学与技术学院 384.4HBase的实现原理的实现原理4.4.1HBase功能组件功能组件4.4.2表和表和Region4.4.3Region的定位的定位 大数据技术及应用 信息科学与技术学院 394.4.1HBase功能组件功能组件HBase的实现包括三个主要的功能组件:的实现包括三个主要的功能组件:(1)库函数:链接到每个客户端)库函数:链接到每个客户端(2)一个)一个Master主服务器主服务器(3)许多个)许多个Region服务器服务器主服务器主服务器Master负责管理和维护负责管理和维护HBase表的分区信息表的分区信息,维护,维护

36、Region服务器服务器列表,分配列表,分配Region,负载均衡,负载均衡Region服务器负责存储和维护分配给自己的服务器负责存储和维护分配给自己的Region,处理来自客户端的读,处理来自客户端的读写请求写请求客户端并不是直接从客户端并不是直接从Master主服务器上读取数据,而是在获得主服务器上读取数据,而是在获得Region的存的存储位置信息后,直接从储位置信息后,直接从Region服务器上读取数据服务器上读取数据客户端并不依赖客户端并不依赖Master,而是通过,而是通过Zookeeper来获得来获得Region位置信息,大位置信息,大多数客户端甚至从来不和多数客户端甚至从来不和M

37、aster通信,这种设计方式使得通信,这种设计方式使得Master负载很小负载很小 大数据技术及应用 信息科学与技术学院 404.4.2表和表和Region 一个HBase表被划分成多个Region 一个Region会分裂成多个新的Region开始只有一个开始只有一个Region,后来不断分裂,后来不断分裂Region拆分操作非常快,接近瞬间,因为拆拆分操作非常快,接近瞬间,因为拆分之后的分之后的Region读取的仍然是原存储文件,读取的仍然是原存储文件,直到直到“合并合并”过程把存储文件异步地写到独过程把存储文件异步地写到独立的文件之后,才会读取新文件立的文件之后,才会读取新文件 大数据技术

38、及应用 信息科学与技术学院 414.4.2表和表和Region图4-7 不同的Region可以分布在不同的Region服务器上每个每个Region默认大小是默认大小是100MB到到200MB(2006年以前的硬件配置)年以前的硬件配置)每个每个Region的最佳大小取决于单台服务器的有效处理能力的最佳大小取决于单台服务器的有效处理能力目前每个目前每个Region最佳大小建议最佳大小建议1GB-2GB(2013年以后的硬件配置)年以后的硬件配置)同一个同一个Region不会被分拆到多个不会被分拆到多个Region服务器服务器每个每个Region服务器存储服务器存储10-1000个个Region

39、大数据技术及应用 信息科学与技术学院 424.4.3Region的定位的定位 HBase的三层结构元数据表,又名元数据表,又名.META.表,存储了表,存储了Region和和Region服务器的映射关系服务器的映射关系当当HBase表很大时,表很大时,.META.表也会被分裂成多个表也会被分裂成多个Region根数据表,又名根数据表,又名-ROOT-表,记录所有元数据的具体位置表,记录所有元数据的具体位置-ROOT-表只有唯一一个表只有唯一一个Region,名字是在程序中被写死的,名字是在程序中被写死的Zookeeper文件记录了文件记录了-ROOT-表的位置表的位置 大数据技术及应用 信息科

40、学与技术学院 434.4.3Region的定位的定位 HBase的三的三层结层结构中各构中各层层次的名称和作用次的名称和作用层层次次名称名称作用作用第一第一层层Zookeeper文件文件 记录记录了了-ROOT-表的位置信息表的位置信息第二第二层层-ROOT-表表记录记录了了.META.表的表的Region位置信息位置信息-ROOT-表只能有一个表只能有一个Region。通。通过过-ROOT-表,表,就可以就可以访问访问.META.表中的数据表中的数据第三第三层层.META.表表记录记录了用了用户户数据表的数据表的Region位置信息,位置信息,.META.表可以有多个表可以有多个Region

41、,保存了,保存了HBase中所有用中所有用户户数据表的数据表的Region位置信息位置信息 大数据技术及应用 信息科学与技术学院 444.4.3Region的定位的定位为了加快访问速度,为了加快访问速度,.META.表的全部表的全部Region都会被保存在内存中都会被保存在内存中。假设假设.META.表的每行(一个映射条目)在内存中大约占用表的每行(一个映射条目)在内存中大约占用1KB,并且每个,并且每个Region限制为限制为128MB,那么,上面的三层结构可以保存的用户数据表的,那么,上面的三层结构可以保存的用户数据表的Region数目的计算方法是:数目的计算方法是:(-ROOT-表能够寻

42、址的表能够寻址的.META.表的表的Region个数)个数)(每个(每个.META.表的表的Region可以寻址的用户数据表的可以寻址的用户数据表的Region个数)个数)一个一个-ROOT-表最多只能有一个表最多只能有一个Region,也就是最多只能有,也就是最多只能有128MB,按照,按照每行(一个映射条目)占用每行(一个映射条目)占用1KB内存计算,内存计算,128MB空间可以容纳空间可以容纳128MB/1KB=217行,也就是说,一个行,也就是说,一个-ROOT-表可以寻址表可以寻址217个个.META.表的表的Region。同理,每个同理,每个.META.表的表的Region可以寻址

43、的用户数据表的可以寻址的用户数据表的Region个数是个数是128MB/1KB=217。最终,三层结构可以保存的最终,三层结构可以保存的Region数目是数目是(128MB/1KB)(128MB/1KB)=234个个Region 大数据技术及应用 信息科学与技术学院 454.4.3Region的定位的定位客户端访问数据时的客户端访问数据时的“三级寻址三级寻址”为了加速寻址,客户端会缓存位置信息,同时,需要解决缓存失效问题为了加速寻址,客户端会缓存位置信息,同时,需要解决缓存失效问题寻址过程客户端只需要询问寻址过程客户端只需要询问Zookeeper服务器,不需要连接服务器,不需要连接Master

44、服务器服务器 大数据技术及应用 信息科学与技术学院 464.5HBase运行机制运行机制4.5.1HBase系统架构系统架构4.5.2Region服务器工作原理服务器工作原理4.5.3Store工作原理工作原理4.5.4HLog工作原理工作原理 大数据技术及应用 信息科学与技术学院 474.5.1HBase系统架构系统架构 HBase的系统架构 大数据技术及应用 信息科学与技术学院 484.5.1HBase系统架构系统架构1.客户端客户端客户端包含访问客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的的接口,同时在缓存中维护着已经访问过的Region位置信位置信息,用来加快后续数据

45、访问过程息,用来加快后续数据访问过程2.Zookeeper服务器服务器Zookeeper可以帮助选举出一个可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总有作为集群的总管,并保证在任何时刻总有唯一一个唯一一个Master在运行,这就避免了在运行,这就避免了Master的的“单点失效单点失效”问题问题Zookeeper是一个很好的集群管理工具,被大量用于分布式计算,是一个很好的集群管理工具,被大量用于分布式计算,提供配置维护、域名服务、分布式同步、组服务等。提供配置维护、域名服务、分布式同步、组服务等。大数据技术及应用 信息科学与技术学院 494.5.1HBase系统架构系统架构

46、3.Master主服务器主服务器Master主要负责表和主要负责表和Region的管理工作:的管理工作:管理用户对表的增加、删除、修改、查询等操作管理用户对表的增加、删除、修改、查询等操作实现不同实现不同Region服务器之间的负载均衡服务器之间的负载均衡在在Region分裂或合并后,负责重新调整分裂或合并后,负责重新调整Region的分布的分布对发生故障失效的对发生故障失效的Region服务器上的服务器上的Region进行迁移进行迁移4.Region服务器服务器Region服务器是服务器是HBase中最核心的模块,负责维护分配给自己中最核心的模块,负责维护分配给自己的的Region,并响应用

47、户的读写请求,并响应用户的读写请求 大数据技术及应用 信息科学与技术学院 504.5.2Region服务器工作原理服务器工作原理Region服务器向HDFS文件系统中读写数据 1.用户读写数据过程用户读写数据过程 2.缓存的刷新缓存的刷新3.StoreFile的合并的合并 大数据技术及应用 信息科学与技术学院 514.5.2Region服务器工作原理服务器工作原理1.用户读写数据过程用户读写数据过程 用户写入数据时,被分配到相应用户写入数据时,被分配到相应Region服务器去执行服务器去执行用户数据首先被写入到用户数据首先被写入到MemStore和和Hlog中中只有当操作写入只有当操作写入Hl

48、og之后,之后,commit()调用才会将其返回给客户端调用才会将其返回给客户端当用户读取数据时,当用户读取数据时,Region服务器会首先访问服务器会首先访问MemStore缓存,如缓存,如果找不到,再去磁盘上面的果找不到,再去磁盘上面的StoreFile中寻找中寻找 大数据技术及应用 信息科学与技术学院 524.5.2Region服务器工作原理服务器工作原理2.缓存的刷新缓存的刷新系统会周期性地把系统会周期性地把MemStore缓存里的内容刷写到磁盘的缓存里的内容刷写到磁盘的StoreFile文件中,清空缓存,并在文件中,清空缓存,并在Hlog里面写入一个标记里面写入一个标记每次刷写都生成

49、一个新的每次刷写都生成一个新的StoreFile文件,因此,每个文件,因此,每个Store包包含多个含多个StoreFile文件文件每个每个Region服务器都有一个自己的服务器都有一个自己的HLog文件,每次启动都文件,每次启动都检查该文件,确认最近一次执行缓存刷新操作之后是否发生新检查该文件,确认最近一次执行缓存刷新操作之后是否发生新的写入操作;如果发现更新,则先写入的写入操作;如果发现更新,则先写入MemStore,再刷写到,再刷写到StoreFile,最后删除旧的,最后删除旧的Hlog文件,开始为用户提供服务文件,开始为用户提供服务 大数据技术及应用 信息科学与技术学院 534.5.2

50、Region服务器工作原理服务器工作原理3.StoreFile的合并的合并每次刷写都生成一个新的每次刷写都生成一个新的StoreFile,数量太多,影响,数量太多,影响查找速度查找速度调用调用Spact()把多个合并成一个把多个合并成一个合并操作比较耗费资源,只有数量达到一个阈值才启合并操作比较耗费资源,只有数量达到一个阈值才启动合并动合并 大数据技术及应用 信息科学与技术学院 544.5.3Store工作原理工作原理 StoreFile的合并和分裂过程 Store是是Region服务器的核心服务器的核心多个多个StoreFile合并成一个合并成一个单个单个StoreFile过大时,又触发分裂

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁