以下试题是摘自互联网的基础上自己加了选项说明解释便于自己以后看时方便节省时间
1. HBase来源于哪篇博文? C
A The Google File System
B MapReduce
C BigTable
D Chubby
2. 下面对HBase的描述哪些是正确的? B、C、D
A 不是开源的
B 是面向列的
C 是分布式的
D 是一种NoSQL数据库
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. MapReduce与HBase的关系,哪些描述是正确的? B、C
A 两者不可或缺,MapReduce是HBase可以正常运行的保证
B 两者不是强关联关系,没有MapReduce,HBase可以正常运行
C MapReduce可以直接访问HBase
D 它们之间没有任何关系
7. 下面哪些选项正确描述了HBase的特性? A、B、C、D
A 高可靠性
B 高性能
C 面向列
D可伸缩
8. 下面与Zookeeper类似的框架是?D
A Protobuf
B Java
C Kafka
(Kafka是一个高吞吐量分布式消息系统。linkedin开源的kafka。 Kafka就跟这个名字一样,设计非常独特。首先,kafka的开发者们认为不需要在内存里缓存什么数据,操作系统的文件缓存已经足够完善和强大,只要你不搞随机写,顺序读写的性能是非常高效的。kafka的数据只会顺序append,数据的删除策略是累积到一定程度或者超过一定时间再删除。Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器,这样服务器就不用记录消息的投递过程,每个客户端都自己知道自己下一次应该从什么地方什么位置读取消息,消息的投递过程也是采用客户端主动pull的模型,这样大大减轻了服务器的负担。Kafka还强调减少数据的序列化和拷贝开销,它会将一些消息组织成Message Set做批量存储和发送,并且客户端在pull数据的时候,尽量以zero-copy的方式传输,利用sendfile(对应java里的 FileChannel.transferTo/transferFrom)这样的高级IO函数来减少拷贝开销。可见,kafka是一个精心设计,特定于某些应用的MQ系统,这种偏向特定领域的MQ系统我估计会越来越多,垂直化的产品策略值的考虑)
D Chubby
(MapReduce 很多人已经知道了,但关于Chubyy似乎熟悉它的就非常有限,这倒是不奇怪,因为MapReduce是一个针对开发人员的 ProgrammingModel,自然会有很多人去学习它,而Chubby更多的是一种为了实现MapReduce或者Bigtable而构建的内部的 工具,对于开发人员来说基本上是透明的。
Chubby首先是一个分布式的文件系统。Chubby能够提供机制使得client可以在Chubby service上创建文件和执行一些文件的基本操作。说它是分布式的文件系统,是因为一个Chubby cell是一个分布式的系统,一般包含了5台机器,整个文件系统是部署在这5台机器上的。
但是,从更高一点的语义层面上,Chubby是一个 lock service,一个针对松耦合的分布式系统的lock service。所谓lock service,就是这个service能够提供开发人员经常用的“锁”,“解锁”功能。通过Chubby,一个分布式系统中的上千个client都能够 对于某项资源进行“加锁”,“解锁”。
那么,Chubby是怎样实现这样的“锁”功能的?就是通过文件。Chubby中的“锁”就是文件,在上例 中,创建文件其实就是进行“加锁”操作,创建文件成功的那个server其实就是抢占到了“锁”。用户通过打开、关闭和读取文件,获取共享锁或者独占锁; 并且通过通信机制,向用户发送更新信息。
综上所述,Chubby是一个lock service,通过这个lock service可以解决分布式中的一致性问题,而这个lock service的实现是一个分布式的文件系统。)
但是,从更高一点的语义层面上,Chubby是一个 lock service,一个针对松耦合的分布式系统的lock service。所谓lock service,就是这个service能够提供开发人员经常用的“锁”,“解锁”功能。通过Chubby,一个分布式系统中的上千个client都能够 对于某项资源进行“加锁”,“解锁”。
那么,Chubby是怎样实现这样的“锁”功能的?就是通过文件。Chubby中的“锁”就是文件,在上例 中,创建文件其实就是进行“加锁”操作,创建文件成功的那个server其实就是抢占到了“锁”。用户通过打开、关闭和读取文件,获取共享锁或者独占锁; 并且通过通信机制,向用户发送更新信息。
综上所述,Chubby是一个lock service,通过这个lock service可以解决分布式中的一致性问题,而这个lock service的实现是一个分布式的文件系统。)
9. 下面与HDFS类似的框架是?C
A NTFS
B FAT32
C GFS(也是分布式文件系统,谷歌自己的分布式文件系统)
D EXT3
10. 下面哪些概念是HBase框架中使用的?A、C
A HDFS
B GridFS
C Zookeeper
D EXT3
第二部分:HBase核心知识点(对于Hbase实现核心LSM,会在下篇文章介绍)
11. LSM含义是?A
A 日志结构合并树(Log-Structured Merge Tree)
B 二叉树
C 平衡二叉树
D 长平衡二叉树
12. 下面对LSM结构描述正确的是? A、C
A 顺序存储
B 直接写硬盘
C 需要将数据Flush到磁盘
D 是一种搜索平衡树
13. LSM更能保证哪种操作的性能?B
A 读
B 写
C 随机读
D 合并
14. LSM的读操作和写操作是独立的?A
A 是。
B 否。
C LSM并不区分读和写
D LSM中读写是同一种操作
15. LSM结构的数据首先存储在()。 B
A 硬盘上
B 内存中
C 磁盘阵列中
D 闪存中
16 HFile数据格式中的Data字段用于()。A
A 存储实际的KeyValue数据
B 存储数据的起点
C 指定字段的长度
D 存储数据块的起点
17 HFile数据格式中的MetaIndex字段用于()。D
A Meta块的长度
B Meta块的结束点
C Meta块数据内容
D Meta块的起始点
18 HFile数据格式中的Magic字段用于()。A
A 存储随机数,防止数据损坏
B 存储数据的起点
C 存储数据块的起点
D 指定字段的长度
19 HFile数据格式中的KeyValue数据格式,下列选项描述正确的是()。A、D
A 是byte[]数组
B 没有固定的结构
C 数据的大小是定长的
D 有固定的结构
20 HFile数据格式中的KeyValue数据格式中Value部分是()。C
A 拥有复杂结构的字符串
B 字符串
C 二进制数据
D 压缩数据
第三部分:HBase高级应用介绍
31 HBase中的批量加载底层使用()实现。A
A MapReduce
B Hive
C Coprocessor
D Bloom Filter
32. HBase性能优化包含下面的哪些选项?A、B、C、D
A 读优化
B 写优化
C 配置优化
D JVM优化
33. Rowkey设计的原则,下列哪些选项的描述是正确的?A、B、C
A 尽量保证越短越好
B 可以使用汉字
C 可以使用字符串
D 本身是无序的
34. HBase构建二级索引的实现方式有哪些? A、B
A MapReduce
B Coprocessor
(HBase在0.92之后引入了协处理器(coprocessors),实现一些激动人心的新特性:能够轻易建立二次索引、复杂过滤器(谓词下推)以及访问控制等)
C Bloom Filter
D Filter
35. 关于HBase二级索引的描述,哪些是正确的?A、B
A 核心是倒排表
B 二级索引概念是对应Rowkey这个“一级”索引
C 二级索引使用平衡二叉树
D 二级索引使用LSM结构
36. 下列关于Bloom Filter的描述正确的是?A、C
A 是一个很长的二进制向量和一系列随机映射函数
B 没有误算率
C 有一定的误算率
D 可以在Bloom Filter中删除元素
第四部分:HBase安装、部署、启动
37. HBase官方版本可以安装在什么操作系统上?A、B、C
A CentOS
B Ubuntu
C RedHat
D Windows
38. HBase虚拟分布式模式需要()个节点?A
A 1
B 2
C 3
D 最少3个
39. HBase分布式模式最好需要()个节点?C
A 1
B 2
C 3
D 最少
40. 下列哪些选项是安装HBase前所必须安装的?A、B
A 操作系统
B JDK
C Shell Script
D Java Code
41. 解压.tar.gz结尾的HBase压缩包使用的Linux命令是?A
A tar -zxvf
B tar -zx
C tar -s
D tar -nf