作业6 数据仓库Hive

发布时间 2024-01-09 16:20:46作者: wardream

一. 单选题(共3题,9分)

1. (单选题, 3分)下面关于Hive的描述错误的是:

  • A. Hive是一个构建在Hadoop之上的数据仓库工具
  • B. Hive是由Facebook公司开发的
  • C. Hive在某种程度上可以看作是用户编程接口,其本身并不存储和处理数据
  • D. Hive定义了简单的类似SQL的查询语言——HiveQL,它与大部分SQL语法无法兼容
我的答案: D:Hive定义了简单的类似SQL的查询语言——HiveQL,它与大部分SQL语法无法兼容;正确答案: D:Hive定义了简单的类似SQL的查询语言——HiveQL,它与大部分SQL语法无法兼容;
 
3分

2. (单选题, 3分)关于Hive和传统关系数据库的对比分析,下面描述错误的是:

  • A. Hive一般依赖于分布式文件系统HDFS,而传统数据库则依赖于本地文件系统
  • B. 传统的关系数据库可以针对多个列构建复杂的索引,Hive不支持索引
  • C. Hive和传统关系数据库都支持分区
  • D. 传统关系数据库很难实现横向扩展,Hive具有很好的水平扩展性
我的答案: B:传统的关系数据库可以针对多个列构建复杂的索引,Hive不支持索引;正确答案: B:传统的关系数据库可以针对多个列构建复杂的索引,Hive不支持索引;
 
3分

3. (单选题, 3分)以下哪个不是Hive的用户接口模块:

  • A. PMI
  • B. HWI(Hive Web Interface)
  • C. JDBC/ODBC
  • D. Thrift Server
我的答案: A:PMI;正确答案: A:PMI;
 
3分

二. 多选题(共5题,15分)

4. (多选题, 3分)下列说法正确的是:

  • A. 数据仓库Hive不需要借助于HDFS就可以完成数据的存储
  • B. Impala和Hive、HDFS、HBase等工具可以统一部署在一个Hadoop平台上
  • C. Hive本身不存储和处理数据,依赖HDFS存储数据,依赖MapReduce处理数据
  • D. HiveQL语法与传统的SQL语法很相似
我的答案: BCD:Impala和Hive、HDFS、HBase等工具可以统一部署在一个Hadoop平台上; Hive本身不存储和处理数据,依赖HDFS存储数据,依赖MapReduce处理数据; HiveQL语法与传统的SQL语法很相似;正确答案: BCD:Impala和Hive、HDFS、HBase等工具可以统一部署在一个Hadoop平台上; Hive本身不存储和处理数据,依赖HDFS存储数据,依赖MapReduce处理数据; HiveQL语法与传统的SQL语法很相似;
 
3分

5. (多选题, 3分)以下哪些是数据仓库的特性:

  • A. 面向主题的(Subject Oriented)
  • B. 集成的(Integrated)
  • C. 相对稳定的(Non-Volatile)
  • D. 反映历史变化
我的答案: ABCD:面向主题的(Subject Oriented); 集成的(Integrated); 相对稳定的(Non-Volatile); 反映历史变化;正确答案: ABCD:面向主题的(Subject Oriented); 集成的(Integrated); 相对稳定的(Non-Volatile); 反映历史变化;
 
3分

6. (多选题, 3分)Hadoop生态系统中Hive与其他部分的关系的描述正确的是:

  • A. HDFS作为高可靠的底层存储,用来存储Hive的海量数据
  • B. MapReduce对这些海量数据进行批处理,实现Hive的高性能计算
  • C. 当采用MapRedue作为Hive的执行引擎时,用HiveQL语句编写的处理逻辑,最终都要转化为MapReduce任务来运行
  • D. HBase与Hive的功能是互补的,它实现了Hive不能提供的功能
我的答案: ABC:HDFS作为高可靠的底层存储,用来存储Hive的海量数据; MapReduce对这些海量数据进行批处理,实现Hive的高性能计算; 当采用MapRedue作为Hive的执行引擎时,用HiveQL语句编写的处理逻辑,最终都要转化为MapReduce任务来运行;正确答案: ABCD:HDFS作为高可靠的底层存储,用来存储Hive的海量数据; MapReduce对这些海量数据进行批处理,实现Hive的高性能计算; 当采用MapRedue作为Hive的执行引擎时,用HiveQL语句编写的处理逻辑,最终都要转化为MapReduce任务来运行; HBase与Hive的功能是互补的,它实现了Hive不能提供的功能;
 
1.5分

7. (多选题, 3分)Hive主要由哪三个模块组成:

  • A. 用户接口模块
  • B. 用户查询模块
  • C. 驱动模块
  • D. 元数据存储模块
我的答案: ACD:用户接口模块; 驱动模块; 元数据存储模块;正确答案: ABD:用户接口模块; 用户查询模块; 元数据存储模块;
 
0分

8. (多选题, 3分)当采用MapReduce作为Hive的执行引擎时,下面描述正确的是:

  • A. 当用户向Hive输入一段命令或查询(即HiveQL语句)时,Hive需要与Hadoop交互工作来完成该操作
  • B. 命令或查询首先进入到驱动模块,由驱动模块中的编译器进行解析编译,并由优化器对该操作进行优化计算,然后交给执行器去执行
  • C. 执行器通常的任务是启动一个或多个MapReduce任务,有时也不需要启动MapReduce任务
  • D. 执行器通常的任务一定会包含Map和Reduce操作
我的答案: AC:当用户向Hive输入一段命令或查询(即HiveQL语句)时,Hive需要与Hadoop交互工作来完成该操作; 执行器通常的任务是启动一个或多个MapReduce任务,有时也不需要启动MapReduce任务;正确答案: ABC:当用户向Hive输入一段命令或查询(即HiveQL语句)时,Hive需要与Hadoop交互工作来完成该操作; 命令或查询首先进入到驱动模块,由驱动模块中的编译器进行解析编译,并由优化器对该操作进行优化计算,然后交给执行器去执行; 执行器通常的任务是启动一个或多个MapReduce任务,有时也不需要启动MapReduce任务;
 
1.5分