第二次作业
一. 多选题(共5题)
-
(多选题) Rowkey设计的原则,下列哪些选项的描述是正确的?
- A. 可以使用汉字
- B. 本身是无序的
- C. 尽量保证越短越好
- D. 可以使用字符串
- 正确答案: ACD
-
(多选题)下面对HBase的描述哪些是正确的?
- A. 是一种NoSQL数据库
- B. 不是开源的
- C. 是面向列的
- D. 是分布式的
- 正确答案: ACD
-
(多选题)下面哪些概念是HBase框架中使用的?
- A. EXT3
- B. HDFS
- C. Zookeeper
- D. GridFS
- 正确答案: BC
-
(多选题) 下面哪些选项正确描述了HBase的特性?
- A. 面向列
- B. 高性能
- C. 高可靠性
- D. 可伸缩
- 正确答案: ABCD
-
(多选题)MapReduce与HBase的关系,哪些描述是正确的?
- A. 两者不可或缺,MapReduce是HBase可以正常运行的保证
- B. 它们之间没有任何关系
- C. MapReduce可以直接访问HBase
- D. 两者不是强关联关系,没有MapReduce,HBase可以正常运行
- 正确答案: CD
二. 单选题(共10题)
-
(单选题)以下对NoSQL特点描述中,错误的是()
- A. 数据存储不需要固定的表结构,通常也不存在连接操作
- B. 当插入数据时,不需要预先定义其模式
- C. 支持SQL,用户学习使用很方便
- D. 简单易部署,基本都是开源软件
- 正确答案: C
-
(单选题)为了在响应时间、一致性与持久性之间寻求平衡,NoSQL数据库通常采用( )来满足用户对数据一致性的需求。
- A. 非一致性
- B. 最终一致性
- C. 完全一致性
- D. 临时一致性
- 正确答案: B
-
(单选题)CAP 理论是 NoSql理论的基础,下列性质不属于 CAP 的是( )
- A. 可用性
- B. 一致性
- C. 分区容错性
- D. 原子性
- 正确答案: D
-
(单选题)HBase依靠()存储底层数据
- A. Memory
- B. Hadoop
- C. MapReduce
- D. HDFS
- 正确答案: D
-
(单选题)HBase依赖()提供强大的计算能力
- A. Chubby
- B. MapReduce
- C. RPC
- D. Zookeeper
- 正确答案: B
- (单选题)HBase中的批量加载底层使用()实现。
- A. MapReduce
- B. Bloom Filter
- C. Coprocessor
- D. Hive
- 正确答案: A
- (单选题)NoSQL数据库支持的BASE事务是指( )
- A. 积极性、可靠性、完整性
- B. 基础性、软件化、一致性
- C. 基本可用、软状态、最终一致
- D. 通用性、基础性、耐用性
- 正确答案: C
- (单选题)HBase来源于哪篇博文?
- A. BigTable
- B. The Google File System
- C. MapReduce
- D. Chubby
- 正确答案: A
- (单选题)HBase依赖()提供消息通信机制
- A. Chubby
- B. RPC
- C. Zookeeper
- D. Socket
- 正确答案: C
- (单选题)MongoDB是一种NoSQL数据库,具体地说,是( )存储数据库。
- A. 键值
- B. 图形
- C. 文档
- D. XML
- 正确答案: C
三. 简答题(共4题)
- (简答题)此题为操作题,使用在线平台或分享的虚拟机平台软件,查询Student1表中列标识为Name且行键为003的所有数据。要求写出相关命令,并把结果截图和相关命令一起提交。
正确答案:
scan 'Student1', {FILTER => "QualifierFilter(=,'substring:Name') AND KeyOnlyFilter()"}
- (简答题)
此题为操作题,使用在线平台或分享的虚拟机平台软件,
(1)新建表studentCopy,列族为Grades。
(2)把数据表Student1中的Grades列族的数据复制到studentCopy中。
(3)查看studentCopy中数据。
把运行结果截图和相关命令一起提交。
正确答案:
(1)
create 'studentCopy','Grades'
(2)
hbase org.apache.hadoop.hbase.mapreduce.CopyTable –families=Grades --new.name=studentCopy Student1
(3)
scan 'studentCopy'
- (简答题)
此题为操作题,使用在线平台或分享的虚拟机平台软件,
(1)新建表stucopy,列族为Grades、StuInfo,版本都设置为4,用于存放多版本数据。
(2)把数据表StudentInfo中第2-4个版本的数据复制到stucopy表中。
(3)然后查看stucopy表中的所有数据。
并把结果截图和相关命令一起提交。
正确答案:
(1)
create 'stucopy',{NAME=>'Grades',VERSIONS=>4},{NAME=>'StuInfo',VERSIONS=>4}
(2)
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=2 --endtime=5 --versions=3 --new.name=stucopy StudentInfo
(3)
scan 'stucopy',VERSIONS=>3
- (简答题)
此题为操作题,使用在线平台或分享的虚拟机平台软件,查询StudentInfo表中行键为“001”、列族为“StuInfo”、时间戳为1和2的版本数据。要求写出相关命令,并把结果截图和相关命令一起提交。
正确答案:
get 'StudentInfo','001',{COLUMN=>'StuInfo',TIMERANGE=>[1,3],VERSIONS=>2}
1. HBase 基础知识:
-
Rowkey 设计原则:
- 考虑数据均匀分布,避免热点写入。
- 最好包含时间戳,以支持按时间范围查询。
- 避免过长的Rowkey,以提高检索效率。
-
HBase 特性描述:
- 高可靠性: 数据自动分布和复制,支持水平扩展。
- 高性能: 随机读/写,适合海量数据存储。
- 可伸缩性: 集群规模可动态扩展。
-
HBase 框架中的概念:
- 表(Table): 数据存储的基本单元。
- 行(Row): 表中的数据按Rowkey排序存储。
- 列族(Column Family): 列的逻辑组合,存储在一起。
- HDFS: 数据底层存储,提供高容错性。
-
MapReduce 与 HBase 关系:
- MapReduce可用于大规模数据的批量处理,与HBase结合可实现复杂的数据分析任务。
- HBase作为数据存储,通过MapReduce可以进行高效的数据处理。
2. NoSQL 知识点:
-
NoSQL 特点描述:
- 弹性模式: 适应数据模式变化。
- 横向扩展: 可通过添加节点实现性能提升。
- 非规范化数据模型: 无需事先定义表结构。
-
CAP 理论:
- 一致性(Consistency): 所有节点上的数据是一致的。
- 可用性(Availability): 每个请求都得到响应,无论成功或失败。
- 分区容错性(Partition Tolerance): 系统在网络分区的情况下仍然能够工作。
-
BASE 事务概念:
- 基本可用(Basically Available): 系统保证基本的可用性。
- 软状态(Soft state): 允许系统在不同节点的数据副本存在中间状态。
- 最终一致性(Eventually Consistent): 最终所有节点的数据达到一致状态。
3. HBase 操作:
-
HBase 数据存储底层依赖:
- 基于HDFS存储,保证数据的高可靠性和容错性。
- ZooKeeper用于协调分布式环境下的各个节点。
-
HBase 批量加载底层实现:
- 利用HBase的Bulk Load功能,通过HFile格式高效地加载大量数据。
- 可以通过MapReduce作业生成HFile,然后将其加载到HBase表。
-
HBase 表操作命令:
- 创建表:
create 'table_name', 'column_family'
- 插入数据:
put 'table_name', 'rowkey', 'column_family:column', 'value'
- 查询数据:
get 'table_name', 'rowkey'
4. NoSQL 数据库比较:
- MongoDB 类型:
- MongoDB是文档型数据库,数据以BSON格式存储。
- 支持复杂的查询,具有灵活的数据模型。
- 常用于需要处理大量非结构化数据的场景。