【大数据存储与处理】第二次作业

第二次作业

一. 多选题(共5题)
  1. (多选题) Rowkey设计的原则,下列哪些选项的描述是正确的?

    • A. 可以使用汉字
    • B. 本身是无序的
    • C. 尽量保证越短越好
    • D. 可以使用字符串
    • 正确答案: ACD
  2. (多选题)下面对HBase的描述哪些是正确的?

    • A. 是一种NoSQL数据库
    • B. 不是开源的
    • C. 是面向列的
    • D. 是分布式的
    • 正确答案: ACD
  3. (多选题)下面哪些概念是HBase框架中使用的?

    • A. EXT3
    • B. HDFS
    • C. Zookeeper
    • D. GridFS
    • 正确答案: BC
  4. (多选题) 下面哪些选项正确描述了HBase的特性?

    • A. 面向列
    • B. 高性能
    • C. 高可靠性
    • D. 可伸缩
    • 正确答案: ABCD
  5. (多选题)MapReduce与HBase的关系,哪些描述是正确的?

    • A. 两者不可或缺,MapReduce是HBase可以正常运行的保证
    • B. 它们之间没有任何关系
    • C. MapReduce可以直接访问HBase
    • D. 两者不是强关联关系,没有MapReduce,HBase可以正常运行
    • 正确答案: CD
二. 单选题(共10题)
  1. (单选题)以下对NoSQL特点描述中,错误的是()

    • A. 数据存储不需要固定的表结构,通常也不存在连接操作
    • B. 当插入数据时,不需要预先定义其模式
    • C. 支持SQL,用户学习使用很方便
    • D. 简单易部署,基本都是开源软件
    • 正确答案: C
  2. (单选题)为了在响应时间、一致性与持久性之间寻求平衡,NoSQL数据库通常采用( )来满足用户对数据一致性的需求。

    • A. 非一致性
    • B. 最终一致性
    • C. 完全一致性
    • D. 临时一致性
    • 正确答案: B
  3. (单选题)CAP 理论是 NoSql理论的基础,下列性质不属于 CAP 的是( )

    • A. 可用性
    • B. 一致性
    • C. 分区容错性
    • D. 原子性
    • 正确答案: D
  4. (单选题)HBase依靠()存储底层数据

    • A. Memory
    • B. Hadoop
    • C. MapReduce
    • D. HDFS
    • 正确答案: D
  5. (单选题)HBase依赖()提供强大的计算能力

  • A. Chubby
  • B. MapReduce
  • C. RPC
  • D. Zookeeper
  • 正确答案: B
  1. (单选题)HBase中的批量加载底层使用()实现。
  • A. MapReduce
  • B. Bloom Filter
  • C. Coprocessor
  • D. Hive
  • 正确答案: A
  1. (单选题)NoSQL数据库支持的BASE事务是指( )
  • A. 积极性、可靠性、完整性
  • B. 基础性、软件化、一致性
  • C. 基本可用、软状态、最终一致
  • D. 通用性、基础性、耐用性
  • 正确答案: C
  1. (单选题)HBase来源于哪篇博文?
  • A. BigTable
  • B. The Google File System
  • C. MapReduce
  • D. Chubby
  • 正确答案: A
  1. (单选题)HBase依赖()提供消息通信机制
  • A. Chubby
  • B. RPC
  • C. Zookeeper
  • D. Socket
  • 正确答案: C
  1. (单选题)MongoDB是一种NoSQL数据库,具体地说,是( )存储数据库。
  • A. 键值
  • B. 图形
  • C. 文档
  • D. XML
  • 正确答案: C
三. 简答题(共4题)
  1. (简答题)此题为操作题,使用在线平台或分享的虚拟机平台软件,查询Student1表中列标识为Name且行键为003的所有数据。要求写出相关命令,并把结果截图和相关命令一起提交。

正确答案:

scan 'Student1', {FILTER => "QualifierFilter(=,'substring:Name') AND KeyOnlyFilter()"}
  1. (简答题)

此题为操作题,使用在线平台或分享的虚拟机平台软件,

(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. (简答题)

此题为操作题,使用在线平台或分享的虚拟机平台软件,

(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
  1. (简答题)

此题为操作题,使用在线平台或分享的虚拟机平台软件,查询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格式存储。
    • 支持复杂的查询,具有灵活的数据模型。
    • 常用于需要处理大量非结构化数据的场景。

你可能感兴趣的:(大数据,大数据,数据库,python,开发语言)