一、单项选择题:
1. HBase 来源于哪篇论文? C
A The Google File System
B MapReduce
C BigTable
D Chubby
2.Hbase 行键按什么顺序排序? A
A 二进制逐字节从左到右比对
B 二进制逐字节从右到左比对
C 按数字由小到大
D 按数字由大到小
3. HBase 依靠什么存储底层数据 A
A HDFS
B Hadoop
C Memory
D MapReduce
4. HBase 依赖什么提供消息通信机制 A
A Zookeeper
B Chubby
C RPC
D Socket
5. HBase 依赖什么提供强大的计算能力 D
A Zookeeper
B Chubby
C RPC
D MapReduce
6. 哪个是 Hbase 中分布式存储和负载均衡的最小单元? A
A HRegion
C Column Family
D Column
B HFILE
7. HRegionServer 与 HMaster 以及 Client 之间采用什么协议进行通信
A RPC
C NetBEUI
B TCP/IP
D RDP
8 HFile 数据格式中的 KeyValue 数据格式中 Value 部分是? C
A 拥有复杂结构的字符串
B 字符串
C 二进制数据 D 压缩数据
9. HBase 分布式模式最好需要( )个节点?C
A 1
D 最少
B 2
C 3
10. HBase 的更新和删除数据是在( )阶段操作?A
A. StoreFile 的 Compact 阶段
B. MemStore 进行 Flush 到 StoreFile
C. StoreFile 进行 Split 时候
D .Client 写入时候
11.HBase 的 Rowkey 最大长度? A
A. 64 kb
B. 128 kb
C. 100 bytes
D. 1024 bytes
12. HBase 中的批量加载底层使用( )实现。A
A MapReduce
C Coprocessor
B Hive
D Bloom Filter
二、多项选择题
1. 下面对 HBase 的描述哪些是正确的? B、C、D
A 不是开源的 B 是面向列的 C 是分布式的 D 是一种 NoSQL 数据库
2. MapReduce 与 HBase 的关系,哪些描述是正确的? B、C
A 两者不可或缺,MapReduce 是 HBase 可以正常运行的保证
B 两者不是强关联关系,没有 MapReduce,HBase 可以正常运行
C MapReduce 可以直接访问 HBase
D 它们之间没有任何关系
3. 下面哪些选项正确描述了 HBase 的特性? A、B、C、D
A 高可靠性 B 高性能 C 面向列 D 可伸缩
4. HMaster 主要功能有哪些? A、B、C、D
A 管理用户对表的增删改查操作
B 管理 HRegionServer 的负载均衡,调整 Region 分布
C Region Split 后,负责新 Region 的分布
D 在 HRegionServer 停机后,负责失效 HRegionServer 上 Region 迁移
5. HBase 存储的核心由什么组成?A、B
A MemStore
B StoreFile
C HLog
D Column Family
6. Rowkey 设计的原则,下列哪些选项的描述是正确的?A、B、C
A 尽量保证越短越好 B 可以使用汉字 C 可以使用字符串 D 本身是无序的
7. HBase 性能优化包含下面的哪些选项?A、B、C、D
A 读优化 B 写优化
C 配置优化 D JVM 优化
8. 下面哪些概念是 HBase 框架中使用的?A、C
A HDFS
D EXT3
C Zookeeper
B GridFS
三、填空题
1. HBASE 的查询方式有:(单一 rowkey 完全匹配查询),( rowkey 范围查询),(全表 scan
扫描)。
2. HRegion 在物理上会被分为三个部分:(Hmemcache/缓存),(Hlog/日志),(HStore/持久
层)。
3. HBase 以表的形式存储数据。表有(行)和(列)组成。列划分为若干个(列族)。
4.HBase 读取数据优先读取(HMemcache)中的内容,如果未取到再去读取(Hstore)中的数据,
提高数据读取的性能。
5. 减少 region split 次数方法:(预分配 region),(提高 hbase.hregion.max.filesize)。
6. 表中数据的最大版本可通过(HColumnDescriptor.setMaxVersions)设置。
7. 表中数据的存储生命期可通过 (HColumnDescriptor.setTimeToLive)设置。
8. 在 HBase 支持(-ROOT-)、(.META.)、以及(User Region)三层树级目录结构。
9. HBase 引入(HLog) 防止(MemStore)中的内存数据就会丢失
10. HBase 四个主要的数据模型操作是 (Get),( Put),( Scan), (Delete)
四、问答题:
1.描述下 HBASE 数据写入流程
答案:Client 写入 -> 存入 MemStore,一直到 MemStore 满 ->
Flush 成一个
StoreFile,直至增长到一定阈值 -> 进行 Compact 合并操作 -> 多个 StoreFile 合并
成一个 StoreFile,同时进行版本合并和数据删除 -> 当 StoreFiles
Compact 后,逐步
形成越来越大的 StoreFile
-> 单个 StoreFile 大小超过一定阈值后,触发 Split 操作,
把当前 Region
Split 成 2 个 Region,Region 会下线,新 Split 出的 2 个孩子 Region 会被
HMaster 分配到相应的 HRegionServer 上,使得原先 1 个 Region 的压力得以分流到 2 个
Region 上。
2.有个业务场景需要对计费移动语音话单通过主叫号码按开始通话时间范围进行查询。请设
计 rowkey 并说明设计的目的。
答 案 : rowkey 设 计 : 主 叫 号 码 hash + 主 叫 号 码 + 通 话 开 始 时 间 ( 时 间 格 式 为
yyyymmddhh24miss)。说明以主叫号码随机散列放在最前面,可减少 region 热点问题。由于
主叫号码为主查询条件,放在第二个部分可以快速定位 region 提高查询效率。通话时间是
次查询条件放在第三部分,可做为范围条件里的值。在客户端进行调用时候可以使用 rowkey
的范围查询 scan.setStartRow 和 scan.setStopRow。