大数据技术原理与应用-林子雨版-课后习题答案

13.试述HBase系统基本架构以及每个组成部分的作用。

(1)客户端

客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程

(2)Zookeeper服务器

Zookeeper可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总有唯一一个Master在运行,这就避免了Master的“单点失效”问题

(3)Master

主服务器Master主要负责表和Region的管理工作:管理用户对表的增加、删除、修改、查询等操作;实现不同Region服务器之间的负载均衡;在Region分裂或合并后,负责重新调整Region的分布;对发生故障失效的Region服务器上的Region进行迁移

(4)Region服务器

Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求

14.请阐述Region服务器向HDFS文件系统中读写数据的基本原理

Region服务器内部管理一系列Region对象和一个HLog文件,其中,HLog是磁盘上面的记录文件,它记录着所有的更新操作。每个Region对象又是由多个Store组成的,每个Store对象了表中的一个列族的存储。每个Store又包含了MemStore和若干个StoreFile,其中,MemStore是在内存中的缓存。

15.试述HStore的工作原理

每个Store对应了表中的一个列族的存储。每个Store包括一个MenStore缓存和若干个StoreFile文件。MenStore是排序的内存缓冲区,当用户写入数据时,系统首先把数据放入MenStore缓存,当MemStore缓存满时,就会刷新到磁盘中的一个StoreFile文件中,当单个StoreFile文件大小超过一定阈值时,就会触发文件分裂操作。

16.试述HLog的工作原理

答:HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(Write Ahead Log),用户更新数据必须首先写入日志后,才能写入MemStore缓存,并且,直到MemStore缓存内容对应的日志已经写入磁盘,该缓存内容才能被刷写到磁盘。

17.在HBase中,每个Region服务器维护一个HLog,而不是为每个Region都单独维护一个HLog。请说明这种做法的优缺点。

优点: 多个Region对象的更新操作所发生的日志修改,只需要不断把日志记录追加到单个日志文件中,不需要同时打开、写入到多个日志文件中。

缺点:如果一个Region服务器发生故障,为了恢复其上次的Region对象,需要将Region服务器上的对象,需要将Region服务器上的HLog按照其所属的Region对象进行拆分,然后分发到其他Region服务器上执行恢复操作。

18.当一台Region服务器意外终止时,Master如何发现这种意外终止情况?为了恢复这台发生意外的Region服务器上的Region,Master应该做出哪些处理(包括如何使用HLog进行恢复)?

Zookeeper会实时监测每个Region服务器的状态,当某个Region服务器发生故障时,Zookeeper会通知Master。

Master首先会处理该故障Region服务器上面遗留的HLog文件,这个遗留的HLog文件中包含了来自多个Region对象的日志记录。

系统会根据每条日志记录所属的Region对象对HLog数据进行拆分,分别放到相应Region对象的目录下,然后,再将失效的Region重新分配到可用的Region服务器中,并把与该Region对象相关的HLog日志记录也发送给相应的Region服务器。

Region服务器领取到分配给自己的Region对象以及与之相关的HLog日志记录以后,会重新做一遍日志记录中的各种操作,把日志记录中的数据写入到MemStore缓存中,然后,刷新到磁盘的StoreFile文件中,完成数据恢复。

第五章


1.如何准确理解NoSQL的含义?

NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的一类统称,它采用的数据模型并非传统关系数据库的关系模型,而是类似键/值、列族、文档等非关系模型。

2.试述关系数据库在哪些方面无法满族Web2.0应用的需求。

关系数据库已经无法满足Web2.0的需求。主要表现在以下几个方面:

(1)无法满足海量数据的管理需求

(2)无法满足数据高并发的需求

(3)无法满足高可扩展性和高可用性的需求

3.请比较NoSQL数据库和关系数据库的优缺点。

比较标准

RDBMS

NoSQL

备注

数据库原理

完全支持

部分支持

RDBMS有关系代数理论作为基础

NoSQL没有统一的理论基础

数据规模

 

 

超大

 

RDBMS很难实现横向扩展,纵向扩展的空间也比较有限,性能会随着数据规模的增大而降低

NoSQL可以很容易通过添加更多设备来支持更大规模的数据

 

数据库模式

 

固定

 

灵活

 

RDBMS需要定义数据库模式,严格遵守数据定义和相关约束条件

NoSQL不存在数据库模式,可以自由灵活定义并存储各种不同类型的数据

 

查询效率

 

 

可以实现高效的简单查询,但是不具备高度结构化查询等特性,复杂查询的性能不尽人意

 

RDBMS借助于索引机制可以实现快速查询(包括记录查询和范围查询)

很多NoSQL数据库没有面向复杂查询的索引,虽然NoSQL可以使用MapReduce来加速查询,但是,在复杂查询方面的性能仍然不如RDBMS

 

一致性

 

强一致性

 

弱一致性

 

RDBMS严格遵守事务ACID模型,可以保证事务强一致性

很多NoSQL数据库放松了对事务ACID四性的要求,而是遵守BASE模型,只能保证最终一致性

 

数据完整性

容易实现

 

很难实现

任何一个RDBMS都可以很容易实现数据完整性,比如通过主键或者非空约束来实现实体完整性,通过主键、外键来实现参照完整性,通过约束或者触发器来实现用户自定义完整性

但是,在NoSQL数据库却无法实现

 

扩展性

 

一般

 

 

RDBMS很难实现横向扩展,纵向扩展的空间也比较有限

NoSQL在设计之初就充分考虑了横向扩展的需求,可以很容易通过添加廉价设备实现扩展

 

可用性

 

 

很好

 

RDBMS在任何时候都以保证数据一致性为优先目标,其次才是优化系统性能,随着数据规模的增大,RDBMS为了保证严格的一致性,只能提供相对较弱的可用性

大多数NoSQL都能提供较高的可用性

 

标准化

 

 

 

RDBMS已经标准化(SQL)

NoSQL还没有行业标准,不同的NoSQL数据库都有自己的查询语言,很难规范应用程序接口

StoneBraker认为:NoSQL缺乏统一查询语言,将会拖慢NoSQL发展

技术支持

 

 

 

RDBMS经过几十年的发展,已经非常成熟,Oracle等大型厂商都可以提供很好的技术支持

NoSQL在技术支持方面仍然处于起步阶段,还不成熟,缺乏有力的技术支持

 

可维护性

 

复杂

 

复杂

 

RDBMS需要专门的数据库管理员(DBA)维护

NoSQL数据库虽然没有DBMS复杂,也难以维护

 

5.试述NoSQL数据库的四大类型

答:键值数据库、列族数据库、文档数据库和图数据库

6.试述键值数据库、列族数据库、文档数据库和图数据库的适用场合和优缺点。

数据库

适用场合

优点

缺点

键值数据库

通过键而是通过值来查的业务

扩展性好,灵活性好,大量写操作时性能高

无法存储结构化信息,条件查询效率较低

列族数据库

不需要ACID事务支持的情形

查找速度快,可扩展性强,容易进行分布式扩展,复杂性低

功能较少,大都不支持强事务一致性

文档数据库

只在相同的文档上添加事务

性能好(高并发),灵活性高,复杂性低,数据结构灵活

提供嵌入式文档功能,将经常查询的数据存储在同一个文档中

既可以根据键来构建索引,也可以根据内容构建索引

 

缺乏统一的查询语法

 

图形数据库

具有高度相互关联关系的数据

灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱

复杂性高,只能支持一定的数据规模

 

7.试述CAP理论的具体含义。

答:所谓的CAP指的是:

C(Consistency):一致性,是指任何一个读操作总是能够读到之前完成的写操作的结果,也就是在分布式环境中,多点的数据是一致的,或者说,所有节点在同一时间具有相同的数据

A:(Avai

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值