***
专业资料整理分享
答:首先访问 Zookeeper,获取-ROOT表的位置信息,然后访问 -Root- 表,获 得.MATA.表的信息,接着访问 .MATA.表,找到所需的 Region 具体位于哪个 Region 服务器,最后才会到该 Region 服务器读取数据。
29. 试述 HBase系统基本架构以及每个组成部分的作用。
(1)客户端
客户端包含访问 HBase的接口,同时在缓存中维护着已经访问过的 位置信息,用来加快后续数据访问过程 (2)Zookeeper 服务器
Zookeeper 可以帮助选举出一个 Master 作为集群的总管, 并保证在任何时刻 总有唯一一个 Master 在运行,这就避免了 Master 的“单点失效”问题 (3)Master
主服务器 Master 主要负责表和 Region 的管理工作:管理用户对表的增加、 删除、修改、查询等操作;实现不同 Region 服务器之间的负载均衡;在 Region 分裂或合并后, 负责重新调整 Region 的分布;对发生故障失效的 Region 服务器 上的 Region 进行迁移 (4)Region 服务器
Region 服务器是 HBase中最核心的模块,负责维护分配给自己的 并响应用户的读写请求
Region, Region
30. 请阐述 Region 服务器向 HDFS文件系统中读写数据的基本原理
Region 服务器内部管理一系列 Region 对象和一个 HLog文件,其中, HLog是磁 盘上面的记录文件,它记录着所有的更新操作。每个
Region 对象又是由多个
Store 组成的,每个 Store 对象了表中的一个列族的存储。每个 Store 又包含了 MemStore和若干个 StoreFile ,其中, MemStore是在内存中的缓存。
31. 试述 HStore 的工作原理
每个 Store 对应了表中的一个列族的存储。每个
Store 包括一个 MenStore 缓存
和若干个 StoreFile 文件。MenStore 是排序的内存缓冲区,当用户写入数据时,
完美 WORD格式编辑
***
***
专业资料整理分享
系统首先把数据放入 MenStore 缓存,当MemStore缓存满时, 就会刷新到磁盘中 的一个 StoreFile 文件中,当单个 StoreFile 文件大小超过一定阈值时, 就会触 发文件分裂操作。
32. 试述 HLog的工作原理
答:HBase系统为每个 Region 服务器配置了一个 HLog文件,它是一种预写 式日志( Write Ahead Log ),用户更新数据必须首先写入日志后,才能写入 MemStore缓存,并且,直到 MemStore缓存内容对应的日志已经写入磁盘,该缓 存内容才能被刷写到磁盘。
33. 在HBase中,每个 Region 服务器维护一个 HLog,而不是为每个 Region 都单
独维护一个 HLog。请说明这种做法的优缺点。
优点: 多个 Region 对象的更新操作所发生的日志修改, 只需要不断把日志 记录追加到单个日志文件中,不需要同时打开、写入到多个日志文件中。
缺点:如果一个 Region 服务器发生故障,为了恢复其上次的
Region 对象,
需要将 Region 服务器上的对象,需要将 Region 服务器上的 HLog按照其所属的 Region 对象进行拆分,然后分发到其他 Region 服务器上执行恢复操作。
34. 当一台 Region 服务器意外终止时, Master 如何发现这种意外终止情况?为
了恢复这台发生意外的 Region 服务器上的 Region,Master 应该做出哪些处理 ( 包 括如何使用 HLog进行恢复)?
Zookeeper 会实时监测每个 Region 服务器的状态,当某个 Region 服务器发 生故障时, Zookeeper 会通知 Master。
Master 首先会处理该故障 Region 服务器上面遗留的 HLog文件,这个遗留的 HLog文件中包含了来自多个 Region 对象的日志记录。
系统会根据每条日志记录所属的 Region 对象对 HLog数据进行拆分, 分别放 到相应 Region 对象的目录下,然后,再将失效的
Region 重新分配到可用的
Region 服务器中,并把与该 Region 对象相关的 HLog日志记录也发送给相应的 Region 服务器。
完美 WORD格式编辑
***
***
专业资料整理分享
Region 服务器领取到分配给自己的 Region 对象以及与之相关的 HLog日志记 录以后,会重新做一遍日志记录中的各种操作,把日志记录中的数据写入到 MemStore缓存中,然后,刷新到磁盘的 StoreFile 文件中,完成数据恢复。
第五章
35. 如何准确理解 NoSQL的含义?
NoSQL是一种不同于关系数据库的数据库管理系统设计方式,
是对非关系型数据库的一类统
/ 值、列族、文档等非
称,它采用的数据模型并非传统关系数据库的关系模型,而是类似键 关系模型。
36. 试述关系数据库在哪些方面无法满族
关系数据库已经无法满足
Web2.0应用的需求。
Web2.0 的需求。主要表现在以下几个方面:
(1)无法满足海量数据的管理需求 (2)无法满足数据高并发的需求
(3)无法满足高可扩展性和高可用性的需求
37. 请比较 NoSQL数据库和关系数据库的优缺点。
比较标准 数据库原理
RDBMS
完全支持
NoSQL 部分支持
备注
RDBMS有关系代数理 论作为基础 NoSQL 没有统一的理 论基础
数据规模
大
超大
RDBMS很难实现横向 扩展,纵向扩展的空 间也比较有限,性能
完美 WORD格式编辑
***
***
专业资料整理分享
会随着数据规模的增 大而降低
NoSQL 可以很容易通 过添加更多设备来支 持更大规模的数据
数据库模式 固定 灵活 RDBMS需要定义数据 库模式,严格遵守数 据定义和相关约束条 件
NoSQL 不存在数据库 模式,可以自由灵活 定义并存储各种不同 类型的数据
查询效率 快 可以实现高效的简单
RDBMS借助于索引机
查询,但是不具备高
制可以实现快速查询
度结 构 化查询 等特 (包括记录查询和范 性,复杂查询的性能 不尽人意
很多 NoSQL数据库没 有面向复杂查询的索 引,虽然 NoSQL可以 使用 MapReduce来加 速查询,但是,在复 杂查询方面的性能仍 然不如 RDBMS 围查询)
一致性 强一致性 弱一致性 RDBMS严格遵守事务 ACID模型, 可以保证 事务强一致性 很多 NoSQL数据库放
完美 WORD格式编辑
***