版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学计算机科学系2015年版
第四章分布式数据库HBase
(PPT版本号:2015年6月第1.0版)
《大数据技术原理与应用》温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字提纲4.1 概述4.2 HBase访问接口4.3 HBase数据模型4.4 HBase的实现原理4.5 HBase运行机制4.6 HBase编程实践欢迎访问《大数据技术原理与应用》教材官方网站:本PPT是如下教材的配套讲义:21世纪高等教育计算机规划教材《大数据技术原理与应用——概念、存储、处理、分析与应用》(2015年6月第1版)厦门大学林子雨编著,人民邮电出版社ISBN:978-7-115-39287-94.1 概述4.1.1 从BigTable说起4.1.2 HBase简介4.1.3 HBase与传统关系数据库的对比分析4.1.1 从BigTable说起BigTable是一个分布式存储系统利用谷歌提出的MapReduce分布式并行计算模型来处理海量数据使用谷歌分布式文件系统GFS作为底层数据存储采用Chubby提供协同服务管理可以扩展到PB级别的数据和上千台机器,具备广泛应用性、可扩展性、高性能和高可用性等特点谷歌的许多项目都存储在BigTable中,包括搜索、地图、财经、打印、社交网站Orkut、视频共享网站YouTube和博客网站Blogger等4.1.2 HBase简介HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表图4-1Hadoop生态系统中HBase与其他部分的关系4.1.2 HBase简介表4-1HBase和BigTable的底层技术对应关系BigTableHBase文件存储系统GFSHDFS海量数据处理MapReduceHadoopMapReduce协同服务管理ChubbyZookeeper4.1.3 HBase与传统关系数据库的对比分析HBase与传统的关系数据库的区别主要体现在以下几个方面:(1)数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则采用了更加简单的数据模型,它把数据存储为未经解释的字符串(2)数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂的多表连接。HBase操作则不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等,因为HBase在设计上就避免了复杂的表和表之间的关系(3)存储模式:关系数据库是基于行模式存储的。HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的4.1.3 HBase与传统关系数据库的对比分析HBase与传统的关系数据库的区别主要体现在以下几个方面:(4)数据索引:关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。HBase只有一个索引——行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来(5)数据维护:在关系数据库中,更新操作会用最新的当前值去替换记录中原来的旧值,旧值被覆盖后就不会存在。而在HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(6)可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也比较有限。相反,HBase和BigTable这些分布式数据库就是为了实现灵活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩4.2 HBase访问接口表4-2HBase访问接口类型特点场合NativeJavaAPI最常规和高效的访问方式适合HadoopMapReduce作业并行批处理HBase表数据HBaseShellHBase的命令行工具,最简单的接口适合HBase管理使用ThriftGateway利用Thrift序列化技术,支持C++、PHP、Python等多种语言适合其他异构系统在线访问HBase表数据RESTGateway解除了语言限制支持REST风格的HttpAPI访问HBasePig使用PigLatin流式编程语言来处理HBase中的数据适合做数据统计Hive简单当需要以类似SQL语言方式来访问HBase的时候4.3 HBase数据模型4.3.1 数据模型概述4.3.2 数据模型相关概念4.3.3 数据坐标4.3.4 概念视图4.3.5 物理视图4.3.6 面向列的存储数数据据模模型型概概述述HBase是一一个个稀稀疏疏、、多多维维度度、、排排序序的的映映射射表表,,这这张张表表的的索索引引是是行行键键、、列列族族、、列列限限定定符符和和时时间间戳戳每个个值值是是一一个个未未经经解解释释的的字字符符串串,,没没有有数数据据类类型型用户户在在表表中中存存储储数数据据,,每每一一行行都都有有一一个个可可排排序序的的行行键键和和任任意意多多的的列列表在在水水平平方方向向由由一一个个或或者者多多个个列列族族组组成成,,一一个个列列族族中中可可以以包包含含任任意意多多个个列列,,同同一一个个列列族族里里面面的的数数据据存存储储在在一一起起列族族支支持持动动态态扩扩展展,,可可以以很很轻轻松松地地添添加加一一个个列列族族或或列列,,无无需需预预先先定定义义列列的的数数量量以以及及类类型型,,所所有有列列均均以以字字符符串串形形式式存存储储,,用用户户需需要要自自行行进进行行数数据据类类型型转转换换HBase中执执行行更更新新操操作作时时,,并并不不会会删删除除数数据据旧旧的的版版本本,,而而是是生生成成一一个个新新的的版版本本,,旧旧有有的的版版本本仍仍然然保保留留数数据据模模型型相相关关概概念念表::HBase采用用表表来来组组织织数数据据,,表表由由行行和和列列组组成成,,列列划划分分为为若若干干个个列列族族行::每每个个HBase表都都由由若若干干行行组组成成,,每每个个行行由由行行键键((rowkey)来来标标识识。。访访问问表表中中的的行行只只有有三三种种方方式式::((1)通通过过单单个个行行键键访访问问;;((2)通通过过一一个个行行键键的的区区间间来来访访问问;;((3)全全表表扫扫描描列族族::一一个个HBase表被被分分组组成成许许多多““列列族族””的的集集合合,,它它是是基基本本的的访访问问控控制制单单元元列限限定定符符::列列族族里里的的数数据据通通过过列列限限定定符符((或或列列))来来定定位位单元元格格::在在HBase表中中,,通通过过行行、、列列族族和和列列限限定定符符确确定定一一个个““单单元元格格””((cell),,单单元元格格中中存存储储的的数数据据没没有有数数据据类类型型,,总总被被视视为为字字节节数数组组byte[]时间戳::每个单单元格都都保存着着同一份份数据的的多个版版本,这这些版本本采用时时间戳进进行索引引数数据模型型相关概概念图4-2HBase数据模型型的一个个实例数数据坐标标HBase中需要根根据行键键、列族族、列限限定符和和时间戳戳来确定定一个单单元格,,因此,,可以视视为一个个“四维维坐标””,即[行键,列族,列限定符符,时间戳]键值[“201505003”,“Info”,“email”,1174184619081]“xie@”[“201505003”,“Info”,“email”,1174184620720]“you@163.com”概概念视图图表4-4HBase数数据的概概念视图图物物理视图图表4-5HBase数数据的物物理视图图列族contents列族anchor面面向列的的存储图4-3行式数据据库和列列式数据据库示意意图面面向列的的存储图4-4行式存储储结构和和列式存存储结构构4.4HBase的的实现原原理功能组件件表和Region的定位4.4.1HBase功能能组件HBase的实现包包括三个个主要的的功能组组件:(1)库函数数:链接接到每个个客户端端(2)一个Master主服务器器(3)许多个个Region服务器Region服服务器负负责存储储和维护护分配给给自己的的Region,处理理来自客客户端的的读写请请求主服务器器Master负责管管理和维维护HBase表的分分区信息息客户端并并不是直直接从Master主主服务器器上读取取数据,,而是在在获得Region的的存储位位置信息息后,直直接从Region服服务器上上读取数数据表表和Region图4-5一个HBase表被划分分成多个个Region图4-6一个Region会分裂成成多个新新的Region表表和Region图4-7不同的Region可以分布布在不同同的Region服务器上上的的定位图4-8HBase的三层结结构的的定位表4-6HBase的三层结结构中各各层次的的名称和和作用层次名称作用第一层Zookeeper文件记录了-ROOT-表的位置信息第二层-ROOT-表记录了.META.表的Region位置信息-ROOT-表只能有一个Region。通过-ROOT-表,就可以访问.META.表中的数据第三层.META.表记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有用户数据表的Region位置信息4.5HBase运运行机制制系统架构构服务器工工作原理理工作原理理工作原理理4.5.1HBase系统统架构图4-9HBase的系统架架构4.5.1HBase系统统架构1.客户端客户端包包含访问问HBase的接口,,同时在在缓存中中维护着着已经访访问过的的Region位置信息息,用来来加快后后续数据据访问过过程2.Zookeeper服务器Zookeeper可以帮助助选举出出一个Master作为集群群的总管管,并保保证在任任何时刻刻总有唯唯一一个个Master在运行,,这就避避免了Master的“单点点失效””问题3.Master主服务器器Master主要负责责表和Region的管理工工作:管理用户户对表的的增加、、删除、、修改、、查询等等操作实现不同同Region服务器之之间的负负载均衡衡在Region分裂或合合并后,,负责重重新调整整Region的分布对发生故故障失效效的Region服务器上上的Region进行迁移移4.Region服务器Region服务器是是HBase中最核心心的模块块,负责责维护分分配给自自己的Region,并响应应用户的的读写请请求服服务器工工作原理理图4-10Region服服务器向向HDFS文件件系统中中读写数数据1.用户读写写数据过过程2.缓存的刷刷新3.StoreFile的合并4.5.3Store工作作原理图4-11StoreFile的的合并和和分裂过过程4.5.4HLog工作原原理HBase系统为每每个Region服务器配配置了一一个HLog文件,它它是一种种预写式式日志((WriteAheadLog)Zookeeper会实时监监测每个个Region服务器的的状态,,当某个个Region服务器发发生故障障时,Zookeeper会通知MasterMaster首先会处处理该故故障Region服务器上上面遗留留的HLog文件,这这个遗留留的HLog文件中包包含了来来自多个个Region对象的日日志记录录系统会根根据每条条日志记记录所属属的Region对象对HLog数据进行行拆分,,分别放放到相应应Region对象的目目录下,,然后,,再将失失效的Region重新分配配到可用用的Region服务器中中,并把把与该Region对象相关关的HLog日志记录录也发送送给相应应的Region服务器Region服务器领领取到分分配给自自己的Region对象以及及与之相相关的HLog日志记录录以后,,会重新新做一遍遍日志记记录中的的各种操操作,把把日志记记录中的的数据写写入到MemStore缓存中,,然后,,刷新到到磁盘的的StoreFile文件中,,完成数数据恢复复共用日志志优点::提高对对表的写写操作性性能;缺缺点:恢恢复时需需要分拆拆日志4.6HBase编编程实践践本节主要要介绍Linux中关于HBase数据库的的常用Shell命令,以及数据处理理常用的的JavaAPI常用Shell命令常用JavaAPI及应用实实例4.6.1HBase常用用Shell命命令create:创建表表list:列出HBase中所有的的表信息息4.6.1HBase常用用Shell命命令put:向表、、行、列列指定的的单元格格添加数数据scan:浏览表表的相关关信息4.6.1HBase常用用Shell命命令get:通过表表名、行行、列、、时间戳戳、时间间范围和和版本号号来获得得相应单单元格的的值4.6.1HBase常用用Shell命命令enable/disable:使表有有效或无无效drop:删除表表4.6.2HBase常用用JavaAPI及及应用实实例Hbase常用JavaAPI(1)该类用于于管理HBase数据库的的表信息息,包括括创建或或删除表表、列出出表项、、使表有有效或无无效、添添加或删删除表的的列族成成员、检检查HBase的运行状状态等(2)该类用于于管理HBase的配置信信息(3)用于与HBase进行通信信。如果果多个线线程对一一个HTable对象进行行put或者delete操作的话话,则写写缓冲器器可能会会崩溃4.6.2HBase常用用JavaAPI及及应用实实例(4)HTableDescriptor包含了HBase中表格的的详细信信息,例例如表中中的列族族、该表表的类型型(-ROOT-,.META.)、该表表是否只只读、MemStore的最大空空间、Region什么时候候应该分分裂等等等(5)HColumnDescriptor包含了列列族的详详细信息息,例如如列族的的版本号号、压缩缩设置等等。HColumnDescriptor通常在添添加列族族或者创创建表的的时候使使用。列列族一旦旦建立就就不能被被修改,,只能通通过删除除列族,,然后再再创建新新的列族族来间接接的修改改列族。。一旦列列族被删删除了,,该列族族包含的的数据也也随之被被删除4.6.2HBase常用用JavaAPI及及应用实实例(6)用来对单单元格执执行添加加数据操操作(7)用来获取取单行的的信息(8)用于存放放Get或Scan操作后的的查询结结果,并并以<key,value>的格式存存储在map结构中。。该类不不是线程程安全的的(9)客户端端获取取值的的接口口本章小小结本章详详细介介绍了了HBase数据库库的知知识。。HBase数据库库是BigTable的开源源实现现,和和BigTable一样,,支持持大规规模海海量数数据,,分布布式并并发数数据处处理效效率极极高,,易于于扩展展且支支持动动态伸伸缩,,适用用于廉廉价设设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度青海省公共营养师之三级营养师通关题库(附带答案)
- 2025年度个人住房公积金贷款额度调整合同范本4篇
- 2024年度陕西省公共营养师之四级营养师题库练习试卷A卷附答案
- 2024年度陕西省公共营养师之四级营养师考前冲刺模拟试卷B卷含答案
- 如何在学生餐厅中开展商业拓展与创新经营
- 2025年度钢构厂房快速装配施工合同范本
- 2025年个人汽车抵押贷款服务合同
- 2025年陕西丝绸之路经济带建设项目施工承包合同4篇
- 2025年度环保型钢管采购合同书2篇
- 二零二四年度幼儿园幼儿教育软件采购合同2篇
- GB 19053-2024殡仪场所致病菌安全限值
- 绿化养护难点要点分析及技术措施
- 2024年河北省高考历史试卷(含答案解析)
- 车位款抵扣工程款合同
- 2023年湖北省襄阳市中考数学真题(原卷版)
- 小学六年级数学奥数题100题附答案(完整版)
- 湖南高速铁路职业技术学院单招职业技能测试参考试题库(含答案)
- 英汉互译单词练习打印纸
- 2023湖北武汉华中科技大学招聘实验技术人员24人笔试参考题库(共500题)答案详解版
- 一氯二氟甲烷安全技术说明书MSDS
- 母婴护理员题库
评论
0/150
提交评论