《Hadoop批处理技术与应用》课件-第六章 HBase理论基础_第1页
《Hadoop批处理技术与应用》课件-第六章 HBase理论基础_第2页
《Hadoop批处理技术与应用》课件-第六章 HBase理论基础_第3页
《Hadoop批处理技术与应用》课件-第六章 HBase理论基础_第4页
《Hadoop批处理技术与应用》课件-第六章 HBase理论基础_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第六章HBase理论基础12NoSQL数据库与关系型数据库HBase的特点及其体系架构3HBase的表结构4-ROOT-和.META.5HBase的Region分裂

NoSQL数据库与关系型数据库

第六章HBase理论基础01关系型数据库第六章HBase理论基础关系型数据库是依据关系模型来创建的数据库。常见的关系型数据库有:OracleMySQLDB2SQLServerMariaDB什么是关系模型第六章HBase理论基础所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)关系模型是我们生活中能经常遇见的模型,存储这类数据一般用关系型数据库关系模型包括数据结构(数据存储的问题,二维表)、操作指令集合(SQL语句)、完整性约束(表内数据约束、表与表之间的约束)。什么是ER模型?第六章HBase理论基础ER图分为实体、属性、关系三个核心部分。实体是长方形体现,而属性则是椭圆形,关系为菱形。ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entitymember)或者说实体对象(entityinstance),例如学生实体里包括张三、李四等,实体成员(entitymember)/实体实例(entityinstance)不需要出现在ER图中。ER图的属性(attribute)即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性(uniqueattribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。Page

7ER模型示例第六章HBase理论基础Page

8NoSQL数据库第六章HBase理论基础NoSQL是NotOnlySQL的缩写,意即"不仅仅是SQL"的意思,泛指非关系型的数据库。强调Key-ValueStores和文档数据库的优点,而不是单纯的反对RDBMS。常见的NoSQL数据库第六章HBase理论基础HBaseRedisMongoDBCassandraHBase简介第六章HBase理论基础ApacheHBase是一种NoSQL键/值存储系统,它在Hadoop分布式文件系统(HDFS)上运行。不像Hive,HBase操作在数据库上,而不是MapReduce作业上实时运行。HBase分成表,表又细分成列族(columnfamily)。列族必须在模式中加以声明,它将某一组列(列不需要模式定义)分为小组。比如说,“message”列族可能包括以下这几列:“to”、“from”、“date”、“subject”和“body”。HBase中的每个键/值对被定义为一个单元(cell),每个键含有行键、列族和时间戳。HBase中的行是一组键/值映射,由行键来识别。HBase可以使用Hadoop的基础设施,并使用现成服务器实现横向扩展。Redis简介第六章HBase理论基础Redis是将数据存放到内存中,由于内容存取速度快所以redis被广泛应用在互联网项目中。redis有点存取速度快的特点。官方称读取速度会达到30万次每秒,写速度在10万次每秒最有,具体限制于硬件。MongoDB简介第六章HBase理论基础最流行的文档数据库之一。它是一种面向文档的数据库。Mongodb中的所有数据以JSON/BSON格式来处理。它是一种无模式数据库,数据库中的数据量超过TB级。它还支持主从复制方法,以便在服务器上复制数据的多个副本,从而使得某些应用系统中的数据整合来得更容易、更快速。Cassandra简介第六章HBase理论基础宽列式数据库,基于BigTable和DynamoDB的概念。ApacheCassandra是一种主要的NoSQL分布式数据库管理系统,它支撑着如今的许多现代商务应用系统,它提供了持续可用性、高扩展性和高性能、强安全性和操作简单性,同时降低了总体拥有成本。Cassandra拥有分散式架构。任何节点都能执行任何操作。它提供了CAP原理中的AP(可用性和分区可容忍性)。关系型数据库与NoSQL数据库第六章HBase理论基础关系型数据库的优点容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解使用方便:通用的SQL语言使得操作关系型数据库非常方便易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率ACID,多表关联,复杂的数据分析类SQL查询。事务处理—保持数据的一致性;由于以标准化为前提,数据更新的开销很小(相同的字段基本上只有一处);可以进行Join等复杂查询关系型数据库与NoSQL数据库第六章HBase理论基础NoSQL数据库的优点NoSQL具有灵活的数据模型,可以处理非结构化/半结构化的大数据面对丰富多样的数据,构建的应用需要使用非常灵活的数据存储系统,能够轻松容纳新的数据类型,并且不会被第三方数据提供商内容结构的变化所累。NoSQL提供的数据模型则能很好地满足这种需求。通过这种灵活性存储数据而无需修改表或是创建更多的列。非常适合于创建原型或是快速应用,这种灵活性使得新特性的开发变得非常容易。NoSQL很容易实现可伸缩性(向上扩展与水平扩展)RDBMS是中心化的,向上扩展而非水平扩展的。这使得他们不适合于那些需要简单且动态可伸缩性的应用。NoSQL数据库从一开始就是分布式、水平扩展的,因此非常适合于互联网应用分布式的特性。关系型数据库orNoSQL数据库?第六章HBase理论基础关系型数据库的最大特点就是事务的一致性:传统的关系型数据库读写操作都是事务的,具有ACID的特点,这个特性使得关系型数据库可以用于几乎所有对一致性有要求的系统中,如典型的银行系统。但是,在网页应用中,尤其是SNS应用中,一致性却不是显得那么重要,用户A看到的内容和用户B看到同一用户C内容更新不一致是可以容忍的,或者说,两个人看到同一好友的数据更新的时间差那么几秒是可以容忍的,因此,关系型数据库的最大特点在这里已经无用武之地,起码不是那么重要了。相反地,关系型数据库为了维护一致性所付出的巨大代价就是其读写性能比较差,而像微博、facebook这类SNS的应用,对并发读写能力要求极高,关系型数据库已经无法应付(在读方面,传统上为了克服关系型数据库缺陷,提高性能,都是增加一级memcache来静态化网页,而在SNS中,变化太快,memchache已经无能为力了),因此,必须用新的一种数据结构存储来代替关系数据库。关系数据库的另一个特点就是其具有固定的表结构,因此,其扩展性极差,而在SNS中,系统的升级,功能的增加,往往意味着数据结构巨大变动,这一点关系型数据库也难以应付,需要新的结构化数据存储。于是,非关系型数据库应运而生,由于不可能用一种数据结构化存储应付所有的新的需求,因此,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

HBase的特点及其体系架构

第六章HBase理论基础02HBase的体系架构第六章HBase理论基础HBase的体系架构详解第六章HBase理论基础从物理结构上讲,HBase由三种类型的服务器构成主从式架构。RegionServers为数据的读取和写入提供服务。当访问数据时,客户端直接和RegionServers通信。Region的分配,DDL(create,deletetables)操作有HBaseMaster进程处理。Zookeeper是HDFS的一部分,维护着一个活动的集群。HadoopDataNode存储着RegionServer所管理的数据。所有的HBase数据存储在HDFS的文件中。RegionServer和HDfsDataNode并置在一起,这使得RegionServers所服务的数据具有数据局部性(使数据接近需要的位置)。HBase数据在写入时是本地数据,但是当Region移动时,在压实之前它不是本地数据。NameNode维护构成文件的所有物理数据块的元数据信息。HBase的特点第六章HBase理论基础HBase是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(FileSystem)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

HBase的表结构

第六章HBase理论基础03HBase的表结构第六章HBase理论基础HBase的表结构详解第六章HBase理论基础表的行、列、列簇首先我们应该知道的是:最基本的单位是列(column),一列或者多列组成一行(row),并且由唯一的行键(rowkey)来确定存储。一个表中有很多行,每一列可能有多个版本,在每一个单元格(Cell)中存储了不同的值。列族需要在创建表的时候就定义好,虽然后面可以对列簇进行增加和删除,但是最开始要确定好表的结构,数量也不宜过多。,创建表的时候不需要定义好列。对列的插入格式通常为family:qualifier,qualifier也可以是任意的字节数组。同一个列族里qualifier的名称应该唯一,否则就是在更新同一列,列的数量没有限制,可以达到百万级别。列值也没有类型和长度限定。都是字节数组HBase会对rowkey的长度做检查,默认应该小于65536,因为一个表,数据的持久化文件HFile中是按照KeyValue存储的,如果rowkey过长,在一个行很多的表中,只是rowkey就要占用很大的储存空间,这样会极大影响HFile的存储效率;MemStore将缓存部分数据到内存,如果rowkey字段过长,内存的有效利用率就会降低,系统不能缓存更多的数据,这样会降低检索效率。在一个表中rowkey是惟一的,如果相同的插入就是更新,整个表按照rowkey的字典进行有序排序,通过如下的方式取得唯一的值:{namespace->table->colum_family->colum->timestamp}->唯一value

-ROOT-和.META.

第六章HBase理论基础04-ROOT-和.META.第六章HBase理论基础从存储结构和操作方法的角度来说,-ROOT-、.META.与其他表没有任何区别。它们与众不同的地方是HBase用它们来存贮一个重要的系统信息:-ROOT-:记录.META.表的Region信息。.META.:记录用户表的Region信息。其中-ROOT-表本身只会有一个region,这样保证了只需要三次跳转,就能定位到任意region,Page

26HBase查询表的过程第六章HBase理论基础

HBase的Region分裂

第六章HBase理论基础05Page

28什么是Region的分裂第六章HBase理论基础HBase中的Region是一张表的子集,也就是说把一张表在水平方向上切割成若干个region。一张表一开始的时候只有一个region(区域),随着数据量的增长,会自动(或手动)切分出来越来越多的region。HBase中针对表采用”Range分区”,把rowkey的完整区间切割成一个个的”KeyRange”,每一个”KeyRange”称为一个Region,所以说region其实是按照连续的rowKey存储的区间。不同Region分布到不同RegionServer上,region是Hbase集群分布数据的最小单位,或者说region是HBase中分布式存储和负载均衡的最小单元,但不是存储的最小单元。存储的最小单元是storefile(也叫Hfile)。StoreFile是存放数据的地方,里面存的是一个列簇的数据,每一条数据都是key-value,storefile的内部是按照rowkey有序排列的,但是storefile之间是无序的。Region的分裂示例第六章HBase理论基础为什么要分离Region第六章HBase理论基础更大的Region

温馨提示

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

评论

0/150

提交评论