Hadoop大数据处理技术基础与实践(第3版)课件 第7章-海量数据库HBase技术 含思政文化_第1页
Hadoop大数据处理技术基础与实践(第3版)课件 第7章-海量数据库HBase技术 含思政文化_第2页
Hadoop大数据处理技术基础与实践(第3版)课件 第7章-海量数据库HBase技术 含思政文化_第3页
Hadoop大数据处理技术基础与实践(第3版)课件 第7章-海量数据库HBase技术 含思政文化_第4页
Hadoop大数据处理技术基础与实践(第3版)课件 第7章-海量数据库HBase技术 含思政文化_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

第7章海量数据库HBase技术学习目标

·了解HBase的产生背景

·了解HBase表视图

·了解

HBase的物理存储模型

·了解HBase相关操作

·HBase应用案例

1.初识HBaseHbase是一个类似Bigtable的分布式结构化数据库系统,Bigtable是GoogleStyle的数据库,使用结构化的文件来存储数据。1.初识HBase定义:BT是一个稀疏的,长期存储的,多维度的,排序的映射表。索引:行关键字,列关键字和时间戳.值:一个不解释的字符数组.数据都是字符串,没类型,格式由客户来解释(row:string,column:string,time:int64)->string2.HBase表视图HBase表视图分为概念视图和物理视图,在概念视图上是由稀疏的行组成的集合,很多行都没有完整的列族,但是在物理存储中是以列族为单元进行存储的,一行数据被分散在多个物理存储单元中,空单元全部丢弃。2.HBase表视图行名是一个反向URL{即n.www}。contents列族存放网页内容anchor列族存放引用该网页的锚链接文本。CNN的主页被SportsIllustrater和MY-look的主页引用,因此该行包含了名叫“anchor:”和“anchhor:my.look.ca”的列。列名字的格式是"<family>:<label>"时间戳每个锚链接只有一个版本,由时间戳标识,如t9,t8;而contents列则有三个版本,分别由时间戳t3,t5,和t6标识。一个存储Web网页的例子的表的片断2.HBase表视图概念视图2.HBase表视图行行关键字可以是任意字符串,每一行都有一个可排序的主键和任意多的列。表用行键即主键排序,通过主键访问表。在一个行关键字下的每一个读写操作都是原子操作有利于同行并发操作举例,在Webtable里,通过反转URL中主机名的方式,可以把同一个域名下的网页组织成连续行。2.HBase表视图列族每行列分组形成列族:“<family>:<qualifiers>”每张表有一个family集合,固定不变,相当于表结构列族成员有相同前缀。OK:a与OK:b都属于OK列族成员同一列族下存放的所有数据通常都是同一类型列族必须先创建,然后能在其中的列关键字下存放数据,动态增加列限定词任意字符串。比如,Webtable列族是anchor;给列族的每一个列关键字代表一个锚链接物理存储列族成员在文件系统存在一起,(确切)面向列族。这是访问控制的基本单位。2.HBase表视图时间戳表中每一个表项都可以包含同一数据的多个版本不同版本的表项内容按时间戳倒序排列,即最新的排在前面。自动进行垃圾清除。用户可以指明只保留表项的最后n个版本在Webtable中,在contents:列中存放确切爬行一个网页的时间戳。如上的垃圾清除机制可以让我们只保留每个网页的最近三个版本。2.HBase表视图

物理视图在物理存储上面,它是按照列来保存的,在概念视图上面有些列是空白的,这样的列实际上并不会被存储如果在查询的时候不提供时间戳,返回最新版本2.HBase表视图表横向分不同区域,各区域代表所有行一个子集区域确定:第一行(包含)最后行(不含)+随机标识表初始单个区域->逐渐扩大超过阈值->以行为界分割区域分散在HBase集群上单元Bigtable通过行关键字的字典序来维护数据。动态划分成多个连续行叫做“子表”(tablet)是数据分布和负载均衡的单位。这样一来,读较少的连续行就比较有效率2.HBase表视图2.HBase表视图在记录写入Store的MemStore之前,必须先由RegionServer写入到WAL(HLog)中2.HBase表视图HLog文件存储结构2.HBase表视图HFile文件存储结构KeyValue内部结构3.HBase物理存储模型3.HBase物理存储模型架构与实现Hbase由主节点master多个区域服务器regionserver从结点Master分配区域给已注册的区域服务器Regionserver负责0到多个区域,响应客户端读写请求通知master分裂成子区域信息3.HBase物理存储模型1.Client客户端(Client)用于提交管理或读写请求,采用RPC与HMaster和HRegionServer进行通信。2.ZooKeeperZooKeeper为HBase提供协同管理服务,当HRegionServer上线时会把自己注册到ZooKeeper中,以使ZooKeeper能实时监控HRegionServer的健康状态,当发现某一个HRegionServer死掉时,能及时通知HMaster进行相应处理。3.HMasterHMaster是主服务(HBaseMasterServer)的实例,在Hadoop集群中,一般设置运行于NameNode,它负责监控集群中所有的HRegionServer,并对所有表和Region进行管理操作。3.HBase物理存储模型4.HRegionServerHRegionServer是RegionServer的实例,它负责服务和管理多个HRegion实例,并直接响应用户的读写请求,HRegionServer运行于Hadoop集群的数据节点中,一般来说,一个数据节点运行一个HRegionServer。HRegionServer是HBase的最核心模块,有很多后台线程,很多相关操作都需要相应线程进行处理,如监控各Region的大小并进行切片,对StoreFile进行压缩合并操作,监控MemStore并进行Flush操作,把所有修改写入WAL等。5.HRegionHRegion是对表进行划分的基本单元,一个表在刚创建时只有一个Region,但随着记录的增加,表会越来越大,HRegionServer会实时跟踪Region的大小,当Region增大到某个阈值(由hbase.hregion.max.filesize确定)时,就会进行切片操作,由一个Region分裂成两个Region,随着表的继续增大,还会分裂成更多的Region。3.HBase物理存储模型6.HRegionServerHRegionServer是RegionServer的实例,它负责服务和管理多个HRegion实例,并直接响应用户的读写请求,HRegionServer运行于Hadoop集群的数据节点中,一般来说,一个数据节点运行一个HRegionServer。HRegionServer是HBase的最核心模块,有很多后台线程,很多相关操作都需要相应线程进行处理,如监控各Region的大小并进行切片,对StoreFile进行压缩合并操作,监控MemStore并进行Flush操作,把所有修改写入WAL等。5.HRegionHRegion是对表进行划分的基本单元,一个表在刚创建时只有一个Region,但随着记录的增加,表会越来越大,HRegionServer会实时跟踪Region的大小,当Region增大到某个阈值(由hbase.hregion.max.filesize确定)时,就会进行切片操作,由一个Region分裂成两个Region,随着表的继续增大,还会分裂成更多的Region。4.Hbase相关操作BT的API提供了建立和删除表和列族的函数.还提供了函数来修改集群,表和列族的元数据,比如说访问权限

4.Hbase相关操作

Hbase

API:写入Bigtable./OpenthetableTable*T=OpenOrDie(”/bigtable/web/webtable”);//WriteanewanchoranddeleteanoldanchorRowMutationr1(T,“n.www”);r1.Set(”anchor:”,“CNN”);r1.Delete(”anchor:”);Operationop;Apply(&op,&r1);4.Hbase相关操作在BT中,客户应用可以写或者删除值,从每个行中找值,或者遍历一个表中的数据子集.图2的C++代码是使用RowMutation抽象表示来进行一系列的更新(为保证代码精简,没有包括无关的细节).调用Apply函数,就对Webtable进行了一个原子修改:它为/增加了一个锚点,并删除了另外一个锚点.

4.Hbase相关操作

Hbase

API:读Bigtable.Scannerscanner(T);ScanStream*stream;stream=scanner.FetchColumnFamily(”anchor”);stream->SetReturnAllVersions();scanner.Lookup(”n.www”);for(;!stream->Done();stream->Next()){printf(”%s%s%lld%s\n”,scanner.RowName(),stream->ColumnName(),stream->MicroTimestamp(),stream->Value());4.Hbase相关操作

C++代码是使用Scanner抽象来遍历一个行内的所有锚点.客户可以遍历多个列族.有很多方法可以限制一次扫描中产生的行,列和时间戳.例如,我们可以限制上面的扫描,让它只找到那些匹配正则表达式*.的锚点,或者那些时间戳在当前时间前10天的锚点.5.Hbase应用案例

温馨提示

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

评论

0/150

提交评论