最新云计算系列教程9_第1页
最新云计算系列教程9_第2页
最新云计算系列教程9_第3页
最新云计算系列教程9_第4页
最新云计算系列教程9_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、云计算系列教程9hbase 云计算系列教程9内容提要内容提要为什么需要为什么需要hbasehbasehtablehtable的逻辑组织的逻辑组织hbasehbase的运行机制的运行机制hbasehbase与与 hdfshdfshbasehbase的对外接口的对外接口云计算系列教程9引入引入hbase的原因的原因数据库系统已无法适应大型分布式数据存数据库系统已无法适应大型分布式数据存储的需要储的需要改良的关系数据库(副本、分区等)难于改良的关系数据库(副本、分区等)难于安装与维护安装与维护关系模型对数据的操作使数据的存贮变得关系模型对数据的操作使数据的存贮变得复杂复杂云计算系列教程9引入引入hb

2、ase的原因的原因hbasehbase从设计理念上就为可扩展做好了充从设计理念上就为可扩展做好了充分准备分准备空间的扩展只需要加入存储结点空间的扩展只需要加入存储结点使用使用表表的概念,但不同于关系数据库,的概念,但不同于关系数据库,不支持不支持sqlsql实质上是一张极大的、非常稀疏的,存储实质上是一张极大的、非常稀疏的,存储在分布式文件系统上的表在分布式文件系统上的表云计算系列教程9hbasehbase历史历史20062006年底由年底由powerset powerset 的的chad walterschad walters和和jim jim kellerman kellerman 发起发

3、起20082008年成为年成为apache hadoopapache hadoop的一个子项目的一个子项目现已作为产品被使用现已作为产品被使用worldlingoworldlingossopenplacesopenplacesyahooyahooadobeadobe云计算系列教程9hbasehbase用例用例webtablewebtable存储抓取网页和相关信息存储抓取网页和相关信息每个页面对应一行,是个有百万行的大表每个页面对应一行,是个有百万行的大表要基于此表进行分析与解析并由搜索引擎要基于此表进行分析与解析并由搜索引擎对关键字进行索引对关键字进行索引表需要并发地被众多网页抓取程序随机地表

4、需要并发地被众多网页抓取程序随机地访问以及更新数据访问以及更新数据表内容也要作为网页实时缓存被大量用户表内容也要作为网页实时缓存被大量用户随机访问随机访问云计算系列教程9逻辑视图逻辑视图row keytime stampcolumn contentscolumn anchorcolumn “mime”my.look.ca“n.www”t9cnnt8cnn.comt6“. “text/htmlt5“. “t3“. “云计算系列教程9数据模型行数据模型行row keytime stampcolumn contentscolumn anchorcolumn “mime”my.look.ca“n.ww

5、w”t9cnnt8cnn.comt6“. “text/htmlt5“. “t3“. “行键列列云计算系列教程9数据模型行数据模型行每行数据有一可排序的关键字和任意列项每行数据有一可排序的关键字和任意列项字符串、整数、二进制串甚至与串行化的字符串、整数、二进制串甚至与串行化的结构都可以作为行键结构都可以作为行键表按照行键的表按照行键的“逐字节排序逐字节排序”顺序对行进顺序对行进行有序化处理行有序化处理表内数据非常表内数据非常稀疏稀疏,不同的行的列的,不同的行的列的数完全目可以大不相同数完全目可以大不相同云计算系列教程9数据模型行数据模型行可以只对一行上可以只对一行上“锁锁”对行的写操作是始终是对

6、行的写操作是始终是“原子原子”的的云计算系列教程9数据模型列数据模型列列必须用列必须用族族(family)(family)来定义来定义任意一列有如下形式任意一列有如下形式“族:标签族:标签”其中,族和标签都可为任意形式的串其中,族和标签都可为任意形式的串物理上将同物理上将同“族族”数据存储在一起数据存储在一起数据可通过时间戳区分版本数据可通过时间戳区分版本云计算系列教程9数据模型列数据模型列row keytime stampcolumn contentscolumn anchorcolumn “mime”my.look.ca“n.www”t9cnnt8cnn.comt6“. “text/htm

7、lt5“. “t3“. “族标签云计算系列教程9物理视图物理视图row keytime stampcolumn: contentscn.wwwt6“.”t5“.”t3“.”row keytime stampcolumn: anchorcn.wwwt9anchor:cnnt5anchor:my.look.cacnn.comrow keytime stampcolumn: mimecn.wwwt6text/html云计算系列教程9htablehtable小结小结row keytime stampcolumn contentscolumn anchorcolumn “mime”my.look.ca“

8、n.www”t9cnnt8cnn.comt6“. “text/htmlt5“. “t3“. “云计算系列教程9系统总体结构系统总体结构hdfsclusterzoo keeperclusterregionserverregionserverregionservermasterserverhstoremap fileshstoremap filesregion云计算系列教程9数据存储实体区域数据存储实体区域表按照表按照“水平水平”的方式划分成一个或多个的方式划分成一个或多个“区域区域”(region)(region)每个区域都包含一个随机每个区域都包含一个随机id id,区域内的行也,区域内的行也

9、是按行键有序的是按行键有序的最初每张表包含一个区域,当表增大超过最初每张表包含一个区域,当表增大超过阈值后,这个区域被自动分割成两个相同阈值后,这个区域被自动分割成两个相同大小的区域大小的区域区域以分布式的方式分布在集群内区域以分布式的方式分布在集群内云计算系列教程9区域的管理区域的管理区域服务器区域服务器(region server)(region server)为区域的访问提供服务,直接为用户提供服务为区域的访问提供服务,直接为用户提供服务负责维护区域的分割负责维护区域的分割负责数据存持久化负责数据存持久化主服务器主服务器(master server)(master server)管理区域

10、服务器管理区域服务器指派区域服务器对服务特定区域指派区域服务器对服务特定区域恢复失效的区域服务器恢复失效的区域服务器云计算系列教程9特殊目录数据特殊目录数据元数据元数据(meta)(meta)全部用户区域的属性数据都存在元数据表中全部用户区域的属性数据都存在元数据表中包括区域中数据起止行信息、区域包括区域中数据起止行信息、区域“在线在线”状状态等态等保存区域服务器地址保存区域服务器地址元数据表也可包含多个区域,区域属性数据存元数据表也可包含多个区域,区域属性数据存储在储在“根根”结点上结点上云计算系列教程9特殊目录数据特殊目录数据“根根”表表(root)(root)只存包含一个区域只存包含一个

11、区域将元数据中的区域映射到区域服务器将元数据中的区域映射到区域服务器存储元数据服务器位置以及映射了哪些元数据存储元数据服务器位置以及映射了哪些元数据区域区域云计算系列教程9区域服务器区域服务器(region server)(region server)职职能能负责处理用户的读写请求负责处理用户的读写请求向主服务器向主服务器(master server)(master server)上报自己的状态,上报自己的状态,并获取自己需要服务的区域并获取自己需要服务的区域为提高效率,消息通过捎带为提高效率,消息通过捎带(pigback)(pigback)方式通方式通过过“心跳心跳”分组进行传递分组进行传递

12、云计算系列教程9区域服务器区域服务器“写写”写数据首先写入写数据首先写入“预写预写”日志日志对于一个区域服务器而言,对其提供服务对于一个区域服务器而言,对其提供服务的所有区域的的所有区域的“写写”操作日志都存储在同操作日志都存储在同一个日志中一个日志中数据并非直接写文件系统,而是先缓存,数据并非直接写文件系统,而是先缓存,缓存到一定数量再批量写入缓存到一定数量再批量写入写入完成后在日志中做标记写入完成后在日志中做标记云计算系列教程9区域服务器区域服务器“读读”区域服务器现在内存的缓存中查找,如果区域服务器现在内存的缓存中查找,如果命中请求,则直接服务命中请求,则直接服务如果存在多个版本,则返回

13、顺序按照从最如果存在多个版本,则返回顺序按照从最新到最老新到最老云计算系列教程9区域服务器合并区域服务器合并如果映射文件如果映射文件(map file)(map file)数量超过阈值,区数量超过阈值,区域服务器会进行一次合并域服务器会进行一次合并(compaction)(compaction)合并操作也周期性进行合并操作也周期性进行合并可与区域服务器响应用户的读写请求合并可与区域服务器响应用户的读写请求并发进行并发进行如果读写请求与合并区域相关,读写操作如果读写请求与合并区域相关,读写操作先挂起,直到合并操作完成先挂起,直到合并操作完成云计算系列教程9区域服务器分割区域服务器分割当区域文件大

14、过阈值后,区域文件会按照当区域文件大过阈值后,区域文件会按照行的方式对半进行分割行的方式对半进行分割(split)(split)操作操作分割也作为一种请求被区域服务器处理分割也作为一种请求被区域服务器处理被分割区域先离线被分割区域先离线区域服务器在元信息表中生成子表元信息区域服务器在元信息表中生成子表元信息主服务器在得知分割操作进行后,将子表主服务器在得知分割操作进行后,将子表分配给新的区域服务器进行服务分配给新的区域服务器进行服务被分割区域通过垃圾回收机制回收被分割区域通过垃圾回收机制回收云计算系列教程9区域服务器分割区域服务器分割如果主服务器没能正确收到分割消息,主如果主服务器没能正确收到

15、分割消息,主服务器可通过定期检查服务器可通过定期检查matamata数据发现分割数据发现分割操作操作开始分割操作后,被分割区域离线,此时开始分割操作后,被分割区域离线,此时客户端能检测到并在分割后的区域上线后客户端能检测到并在分割后的区域上线后重发访问请求重发访问请求云计算系列教程9失效恢复失效恢复由于检测没有心跳,主服务器能够探知区由于检测没有心跳,主服务器能够探知区域服务器的失效域服务器的失效主服务器将失效服务器所提供服务的区域主服务器将失效服务器所提供服务的区域重新分配给其它区域服务器重新分配给其它区域服务器原失效区域服务器的原失效区域服务器的“预写预写”日志由主服日志由主服务器进行分割

16、并派送给新的区域服务器务器进行分割并派送给新的区域服务器云计算系列教程9客户端客户端连接到连接到zookeeperzookeeper集群获取根区域数据和元集群获取根区域数据和元数据的位置数据的位置在元数据中查找需要访问行所在的区域并在元数据中查找需要访问行所在的区域并定位提供该区域服务的区域服务器定位提供该区域服务的区域服务器直接与区域服务器交互以获取数据直接与区域服务器交互以获取数据根区域数据、元数据以及用户区域信息都根区域数据、元数据以及用户区域信息都被客户端缓存以备下次访问使用被客户端缓存以备下次访问使用云计算系列教程9系统总体结构系统总体结构hdfsclusterzoo keeperc

17、lusterregionserverregionserverregionservermasterserverhstoremap fileshstoremap filesregion云计算系列教程9hbasehbase安装安装需要需要zookeeperzookeeper支持支持本身带本身带zookeeper.jarzookeeper.jar包包步骤步骤解压,并添加支撑的解压,并添加支撑的.jar.jar包到用户包到用户class_pathclass_path修改修改confconf下下hbase-env.sh, regionservershbase-env.sh, regionservershb

18、ase-site.xmlhbase-site.xml启动启动hbase: bin/start-hbase.shhbase: bin/start-hbase.sh云计算系列教程9hbase shellhbase shell启动启动bin/hbase shellbin/hbase shell主要命令主要命令create create 创建表创建表describe describe 描述表描述表enable/disable enable/disable 表激活表激活/ /取消取消drop drop 删除表删除表get/put get/put 表读写表读写云计算系列教程9hbase apihbase apihbaseconfigurationhbaseconfigurationaddresource()addresource()htablehtableput()put()get()get()resultscannerresultscannernext()next()云计算系列教程9hbasehbase与与hdfshdfs如果使用如果使用hdfshdfs需要配置需要配置regionserverregio

温馨提示

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

评论

0/150

提交评论