HBase权威指南分章笔记Word文档下载推荐.docx

上传人:b****4 文档编号:15867417 上传时间:2022-11-16 格式:DOCX 页数:34 大小:1.55MB
下载 相关 举报
HBase权威指南分章笔记Word文档下载推荐.docx_第1页
第1页 / 共34页
HBase权威指南分章笔记Word文档下载推荐.docx_第2页
第2页 / 共34页
HBase权威指南分章笔记Word文档下载推荐.docx_第3页
第3页 / 共34页
HBase权威指南分章笔记Word文档下载推荐.docx_第4页
第4页 / 共34页
HBase权威指南分章笔记Word文档下载推荐.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

HBase权威指南分章笔记Word文档下载推荐.docx

《HBase权威指南分章笔记Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《HBase权威指南分章笔记Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。

HBase权威指南分章笔记Word文档下载推荐.docx

3、一致性

强制还是最终一致性?

这个问题涉及到,存储系统的目标,是否弱化保证一致性?

一致性在确定的用户实例中,造成所有的不同,特别是延迟的影响。

4、物理模型

分布式还是单个机器?

系统架构是分布式机器还是单独机器(distributeionhandledclient-side)。

这个模式对系统的扩展性有很大的影响。

简单的方式,是每次增加一个机器,承担一个sharedsetups,但是对实时性要求高,而且每个分片都需要同样的计算能力。

5、读/写性能

必须理解你的应用的访问模式。

主要读操作还是写操作,还是读写均衡?

是否需要支持区域读,还是随机读?

已有的系统可能对某一个特性有效,可能系统对所有的特点均支持。

6、secondaryindex(辅助索引)

辅助索引允许你根据不同的fields及已排序的序列进行排序及访问操作。

这个特征肯定包括一定没有赋值索引及不保证排序。

要想支持这个特征,需要额外添加模块。

7、故障处理

8、压缩

你可能需要存储TB级数据,因此压缩数据是需要的

9、负载均衡

考虑到高读写,你可能需要存储需要透明的均衡,这个特征可能不能解决你所有问题,但是能帮助你设计高吞吐量的应用设计

10、原子read-modify-write

11、locing,waits,anddeadlocks

复杂的事务处理,像两阶段提交,可能使多客户端等待的资源成为可能性。

在最坏的场景下,可能导致死锁,很难解决。

系统是哪种锁模型,可能是freeofwaits,造成死锁?

 

2)、数据库的标准化

有些情况下,需要我们设计这些不同的schema,可以用非规范化、副本及IntelligentKeys(DDI)。

反思数据如何在BigTable存储系统中存储,怎样达到适当的方式。

下面是一个将典型的关系型数据库模型转为适合于列存储的HBase。

HBaseURLShortener,Hush,将LongURLs转换为shortURLS。

下图是实体关系图:

缩短网址,存储在SHORTURL表中,点击时(onclick),随后就会打开全URL,每一次点击都会被记录在Click表中,包括点击的次数,及从何处点击,然后用于日常分析。

USERS表中的用户可以使用HUSH创建自己的缩短网址,即添加描述,根据外键进行连接。

系统也会再后台下载Linkedpage用于分析例如HTML中的TITLE。

整个网页可以缓存下来,用于批处理或者分析,这些数据保存在URL表中。

下图是用HBase来存储相同的方案,

所有的缩减URL保存在单独的表中shorturl,包括使用统计数据(不同的列族存储不同的时间range,有一个时间存储时限)。

下载的downloadedpage及extracteddetails存储在URLtable中。

这个表使用压缩策略减小存储量。

Users-shortURL,充当一个lookup表,可以快速找到用户的shortIDS。

User表保存用户信息。

虽然表的数据没有改变,但是代表的意义变化,shorturl代替Click表用于统计信息。

USER-SHORTURL表用于代替外键关系,使用户查询更快。

有很多的方式来转换1:

1,1:

n及n:

n的关系来适合HBase架构,

3)HBase构件

这个部分介绍HBase各个组成部分、数据模型及可用的API。

3.1Tables、Rows、columns及cells

基本单位是列,一个或者多列构成一行,使用rowkey进行addressed。

一些列的行数据,构成了一个表。

每列都有多个版本值,存储在单独的单元中。

很像传统的数据表,但是extradimension允许每一个单元多个版本。

所有的行按照rowkey的字典顺序就行排序。

行由多个列构成的列族构成,列族可以由语义或者topicboundaries来定义。

列族保存在同一文件(HFILE)中。

列族在定义表时就固定,不宜改动或者太多列族,当前一般不超过数十列族。

列族的名字由printablecharates组成。

列族通常以family:

qualifier来参考,列族内的列没有什么限制,对列存储的值也没有什么限制。

下图是传统数据库表及HBase表的存储比较,Youshouldthinkaboutrowsandcolumnsnotbeingarrangedliketheclassicspreadsheetmodel,butratheruseatagmetaphorthatisinformationisavailableunderaspecifictag。

所有的列值都有一个时间戳,系统自动赋值或者由用户显式赋值。

这一点可以用于保存随着时间编号的多版本值。

不同版本的单元值以降序的方式保存,这样可以最先访问最新的值,这个特点可以用于那些偏向于读最新值的应用。

用户可以指定一个值有多少版本,此外,支持声明的删除,例如仅仅保存过去一周的数据。

单元内的值以比特串的形式保存,客户端知道其中意义。

HBase是一个稀疏的、分布式、持续、多维的map数据,通过rowkey,columnkey及时间戳来定位。

把这些放到一起,可以访问数据,例如(Table,RowKey,Family,Column,Timestamp)->

value。

HBase存储的特征是一个单元可能存储多版本的值,不同的列可能被写入不同次数,可以使用访问数据的API访问所有的数据,但是默认访问最近的数据。

下图所示一个样例表值。

虽然插入不同次数,存在多个版本,看到的是所有的列及最近版本数据,有一定的方式访问特殊时间戳的值。

3.2Auto-Sharding,自动分片

HBase中可扩展及负载均衡的单位称为region。

Region本质上讲是保存在一起的持续ranges行数据。

当太大时,自动分割。

初始的时候,HBase中只有一个Region,当超过配置的最大存储量,从中间middlekey进行分割,生成两个相等的region。

每一个region都被一个regionserver服务,一个regionserver可以为多个region服务。

当server宕机时,可以快速恢复,fine-grained的负载均衡策略使region可以在不同的服务器间移动。

3.3storageAPI

提供创建表、删除表及列族的操作,也可以改变已定义的表及列族定义,也可以根据已有的rowkey进行添加及删除值。

Scanapi,访问特点的值

HBase仅支持单行的事务处理。

Cells值可以被解释为counters及自动更新。

这些counters可以在一个操作中被读取及修改,虽然HBase是分布式特性,但是可以使用这个机制来试下全局严格的一致性。

从0.91以后,支持服务器端的计算,称为coprocessors。

3.4实现

数据存储到storefiles(HFile)中,有序、持久及可变的数据(key-valuemaps)。

这个文件时顺序的文件块,在尾端有索引,当HFile打开时,index被加载到内存中。

默认的大小是64KB,可以配置,这个文件提供API,可以访问特定的值。

StoreFiles被存储到HDFS中,保证数据存储的可靠性。

当数据被更新时,首先写入commitlog,称为write-aheadlog(WAL),然后存储到内存的memstore中。

当内存中的数据成为最大值时,写入HFILE,然后删除WAL。

WAL用于,方式放到内存中的数据丢失。

注:

局部性,在HBase中根据sortedkey/value来保存数据,根据key的排序,然后顺序读取数据。

因为可以利用这个特点将紧密联系的数据放到一起。

例如wettable的例子,将URL逆转后,更容易将相关数据放到一起。

由于flushingmemstores产生越来越多的HFiles,HBase有一个housekeeping机制来将文件合并,有两种合并方法,minorcompations和majorcompactions。

前者将小文件重写为一个大文件,执行n-waymerge。

由于所有的数据均是排序的,所以数据的合并过程很快。

Majorcompations,重写所有的一个region内所有的列族来生成一个大文件,和minorcompations相比,有一个明显的特点,根据它访问所有的key/value对,所以可以丢掉deletedentries包括deletermarker的数据,Predicatedeletes也同样可以被处理(例如根据TTL过期的数据或者太多versions)。

HBase中有三个主要构件,theclientlibrary,onemasterserver,manyregionservers。

Regionservers可以被添加或者删除或者根据负载情况进行动态变化。

Master用于分配region到regionserver内及使用apachezookeeper(用于保证仅有一个master运行,进引导reigion恢复)。

下图是HBase的结构图:

MasterServer用于处理regionsserver之间的region的负载均衡。

Master并不存储数据及提供数据检索服务,它获取集群状态,因此实际运行过程中负载不大。

另外它负责schemechanges及其他定义操作例如表及列族的创建。

HRegionServer用于所有读及写请求,也用于region的split操作。

客户端也和HregionServer直接通信。

3.5总结

Billionsofrows*millionsofcolumns*thousandsofversions=TBOrpb存储量。

Table的scan操作可以在线性时间,rowkey的查找与改变在logarithmicorder或者极端情况下constantorder(使用bloomfilter)。

基于列的架构,运行海量、wide及稀疏表。

因为每一行都被确定的server来服务,HBase是强一致性,使用multiversioning来帮助你避免并行操作的edit冲突及保存历史数据的变化。

第二章:

HBase的安装

1)必要条件

1.1硬件

没有特定的硬件需求。

考虑到HBase使用Java开发,至少要支持Java环境。

由于RegionServer需要内存用于memstores及blockcache,因此最好安装64位机器,内存超过4G。

在实际的应用中,很多HBase使用Hadoop的HDFS作为存储文件。

在同一服务器上运行Hadoop及HBase需要至少三种Java进程(datanode,tasktracker及regionserve

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1