大学MOOC Spark编程基础(湖北科技职业学院)1450449205 最新慕课完整章节测试答案
第1章 大数据技术概述
文章目录
第1章大数据技术概述单元测验
1、单选题:
大数据计算模式有以下四种,对电子商务网站购物平台数据的实时分析处理过程属于哪一种?
选项:
A: 批处理计算
B: 流计算
C: 图计算
D: 查询分析计算
答案: 【 流计算】
2、单选题:
大数据技术及其代表性的软件种类很多,不同的技术有其不同应用场景,都对应着不同的大数据计算模式,请问软件产品Pregel主要应用于以下哪种计算模式?
选项:
A: 批处理计算
B: 流计算
C: 图计算
D: 查询分析计算
答案: 【 图计算】
3、单选题:
经过多年的发展,Hadoop生态系统不断完善和成熟,目前已经包含多个子项目,其中YARN的主要功能是?
选项:
A: 分布式并行编程模型
B: 数据仓库工具
C: 负责集群资源调度管理的组件
D: 分布式海量日志采集、聚合和传输系统
答案: 【 负责集群资源调度管理的组件】
4、单选题:
Hadoop生态系统中用于构建数据仓库并允许用户输入SQL语句进行查询的功能组件是?
选项:
A: Spark
B: Pregel
C: Flume
D: Hive
答案: 【 Hive】
5、单选题:
MapReduce的一个基本设计思想是?
选项:
A: 计算向数据靠拢
B: 数据向计算靠拢
C: 提高数据的串行计算速度
D: 提高数据的冗余度
答案: 【 计算向数据靠拢】
6、单选题:
Hadoop的生态系统组件之一Sqoop的功能是?
选项:
A: 提供高可靠性、高可用、分布式的海量日志采集
B: 用来存储非结构化和半结构化的松散数据
C: 负责集群资源调度管理的组件
D: 用来在Hadoop和关系数据库之间的交换数据,改进数据的互操作性
答案: 【 用来在Hadoop和关系数据库之间的交换数据,改进数据的互操作性】
7、单选题:
以下哪一项不是Hadoop的缺点?
选项:
A: 计算表达能力有限
B: 数据文件被分布存储到多台机器上
C: 计算延迟高
D: 磁盘I/O开销大
答案: 【 数据文件被分布存储到多台机器上】
8、单选题:
网络中很多数据是以图的形式呈现的,比如社交网络、交通事故,现场证据采集等,为了解决大型图的分布式计算问题,最适合采用以下哪种计算框架:
选项:
A: Spark Core
B: Dremel
C: Pregel
D: Storm
答案: 【 Pregel】
9、单选题:
用户在使用HDFS时,仍然可以像普通文件系统那样用文件名去访问文件,以下哪个选项是正确的访问方式?
选项:
A: 把文件名发送给名称节点,根据文件名直接在名称节点上获取数据
B: 把文件名发送给数据节点,根据文件名直接在数据节点上获取数据
C: 把文件名发送给名称节点,根据文件名在名称节点上找到数据块的实际存储信息,客户端再到数据节点上获取数据
D: 以上说法都不对
答案: 【 把文件名发送给名称节点,根据文件名在名称节点上找到数据块的实际存储信息,客户端再到数据节点上获取数据】
10、多选题:
大数据处理的基本流程有以下哪四个步骤?
选项:
A: 数据采集
B: 存储管理
C: 处理分析
D: 结果呈现
E: 数据安全和隐私保护
答案: 【 数据采集;
存储管理;
处理分析;
结果呈现】
11、多选题:
目前学术界和业界比较认可的关于大数据的四个特点是?
选项:
A: 数据量大
B: 数据类型多
C: 处理速度快
D: 数据可重复使用
E: 价值密度低
答案: 【 数据量大;
数据类型多;
处理速度快;
价值密度低】
12、多选题:
Hadoop两大核心组成部分是什么?
选项:
A: 分布式文件系统HDFS
B: 分布式协作服务Zookeeper
C: 资源调度管理框架YARN
D: 分布式计算框架MapReduce
答案: 【 分布式文件系统HDFS;
分布式计算框架MapReduce】
13、多选题:
与Hadoop相比,Spark主要有以下哪些优点?
选项:
A: 提供多种数据集操作类型而不仅限于MapReduce
B: 数据集中式计算更加高效
C: 提供了内存计算,带来了更高的迭代运算效率
D: 基于DAG的任务调度执行机制
答案: 【 提供多种数据集操作类型而不仅限于MapReduce;
提供了内存计算,带来了更高的迭代运算效率;
基于DAG的任务调度执行机制】
14、多选题:
YARN是负责集群资源调度管理的组件。不同的计算框架统一运行在YARN框架之上,具有哪些优点:
选项:
A: 计算资源按需伸缩
B: 不同负载应用混搭,集群利用率高
C: 共享底层存储,避免数据跨集群迁移
D: 大大降低了运维成本
答案: 【 计算资源按需伸缩;
不同负载应用混搭,集群利用率高;
共享底层存储,避免数据跨集群迁移;
大大降低了运维成本】
15、多选题:
关于Hadoop生态系统中HBase与其它部分的关系,以下说法正确的有:
选项:
A: HBase利用MapReduce来处理HBase中的海量数据,实现高性能计算
B: 利用Zookeeper作为协同服务,实现稳定服务和失败恢复
C: 使用HDFS作为高可靠的底层存储,利用廉价集群提供海量数据存储能力
D: 利用Pig和Hive为HBase提供了高层语言支持
E: 使用Sqoop为HBase提供了高效便捷的RDBMS数据导入功能
答案: 【 HBase利用MapReduce来处理HBase中的海量数据,实现高性能计算;
利用Zookeeper作为协同服务,实现稳定服务和失败恢复;
使用HDFS作为高可靠的底层存储,利用廉价集群提供海量数据存储能力;
利用Pig和Hive为HBase提供了高层语言支持;
使用Sqoop为HBase提供了高效便捷的RDBMS数据导入功能】
16、多选题:
Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统,可以支持以下哪些操作计算:
选项:
A: SQL即席查询(Spark SQL)
B: 流式计算(Spark Streaming)
C: 机器学习(MLlib)
D: 图计算(GraphX)
答案: 【 SQL即席查询(Spark SQL);
流式计算(Spark Streaming);
机器学习(MLlib);
图计算(GraphX)】
17、多选题:
Flink和Spark一样,都是基于内存的计算框架,都支持流计算,在流式处理方面,以下选项是Flink的主要特点的有:
选项:
A: Flink是一行一行地处理数据
B: Flink可以支持毫秒级的响应
C: Flink只能支持秒级的响应
D: Flink支持增量迭代,具有对迭代进行自动优化的功能
答案: 【 Flink是一行一行地处理数据;
Flink可以支持毫秒级的响应;
Flink支持增量迭代,具有对迭代进行自动优化的功能】
第2章 Scala语言基础
第2章Scala语言基础单元测验
1、单选题:
以下哪个选项不是Scala的数据类型?
选项:
A: A Byte,Short,Int,Unit
B: Integer,Void
C: Long,Char,String
D: Float,Double,Boolean
答案: 【 Integer,Void】
2、单选题:
Scala关于变量定义、赋值,错误的是?
选项:
A: val a = 3
B: val a:String = 3
C: var b:Int = 3 ; b = 6
D: var b = "Hello World!" ; b = "123"
答案: 【 val a:String = 3】
3、单选题:
下面四个选项中,哪一个选项中a的取值与其他三个选项不同?
选项:
A: val a = 3
B: val a:Double = 1 + 2
C: var a = 1; a += 2
D: val b = 1.+(2); val a = b.toInt
答案: 【 val a:Double = 1 + 2】
4、单选题:
下面输出与其他不一致的是?
选项:
A: println("Hello World")
B: print("Hello Worldn")
C: printf("Hello %s", "Worldn")
D: val w = "World" ; println("Hello $w")
答案: 【 val w = "World" ; println("Hello $w")】
5、单选题:
关于元组 Tuple 说法错误的是?
选项:
A: 元组可以包含不同类型的元素
B: 元组是不可变的
C: 访问元组tuple第一个元素的方式为tuple._1
D: 元组最多只有2个元素
答案: 【 元组最多只有2个元素】
6、单选题:
以下对集合的描述有误的是?
选项:
A: Set是一组没有先后次序的值
B: Map是一组(键,值)对偶
C: 每个Scala集合特质或类都有一个带有apply方法的伴生对象,可以用此方法来构建该集合中的实例
D: 为了顾及安全性问题,Scala仅支持不可变集合而不支持可变集合
答案: 【 为了顾及安全性问题,Scala仅支持不可变集合而不支持可变集合】
7、单选题:
有关操作符优先级的描述不正确的是?
选项:
A: *=的优先级低于+
B: >的优先级高于&
C: +的优先级高于!
D: %的优先级高于+
答案: 【 +的优先级高于!】
8、单选题:
对集合(Set)进行操作"Set(2, 0, 1) + 1 + 1 - 1"之后的结果为?
选项:
A: Set(2, 0, 1, 1)
B: Set(2, 0, 1)
C: Set(2, 0)
D: 以上均不正确
答案: 【 Set(2, 0)】
9、单选题:
如果需要使用scala库中的sqrt函数,如sqrt(2),下列引用包的方式错误的是?
选项:
A: import scala.math._
B: import sqrt
C: import math._
D: import math.sqrt
答案: 【 import sqrt】
10、单选题:
关于辅助构造器,以下说法正确的是?
选项:
A: 辅助构造器的必须调用主构造器
B: 辅助构造器的可以直接调用超类的主构造器
C: 辅助构造器的参数可以是任意多个
D: 辅助构造器的名称和类名相同
答案: 【 辅助构造器的参数可以是任意多个】
11、单选题:
Scala中,类成员的缺省访问级别是?
选项:
A: public
B: private
C: protected
D: 以上都不对
答案: 【 public】
12、单选题:
以下关于闭包描述错误的是?
选项:
A: 闭包是一个函数,其返回值依赖于声明在函数包部的一个或多个变量
B: 通常来讲,可以将闭包看作是可以访问一个函数里面局部变量的另一个函数
C: 对于def mulBy(factor: Double) = (x: Double) => factor * x; val triple = mulBy(3);,函数triple是一个闭包
D: 对于def mulBy(factor: Double) = (x: Double) => 3 * x; val triple = mulBy(3);,函数triple是一个闭包
答案: 【 对于def mulBy(factor: Double) = (x: Double) => 3 * x; val triple = mulBy(3);,函数triple是一个闭包】
13、单选题:
高阶函数是指?
选项:
A: 在程序中应该首先被定义的函数
B: 将函数作为参数,并返回结果为函数的函数
C: 函数参数为函数或返回结果为函数的函数
D: 执行时间长的函数
答案: 【 函数参数为函数或返回结果为函数的函数】
14、单选题:
对于以下代码描述有误的是?val data = Map(1 -> "One", 2 -> "Two")val res = for((k, v) <- data; if(k > 1)) yield v
选项:
A: 运行后res的结果为List("Two")
B: 运行后res的结果为List("One", "Two")
C: 对映射data中的每一个(键,值)对,k被绑定对键,而v则被绑定到值
D: 其中的if(k > 1)是一个守卫表达式
答案: 【 运行后res的结果为List("One", "Two")】
15、单选题:
Scala中,下面的哪个类定义是不正确的?
选项:
A: class Counter{def counter = “counter”}
B: class Counter{val counter = “counter”}
C: class Counter{var counter:String}
D: class Counter{def counter () {}}
答案: 【 class Counter{var counter:String}】
16、单选题:
以下关于类和单例对象的对比说法正确的是?
选项:
A: 单例对象不可以定义方法,而类可以
B: 单例对象不可以带参数,而类可以
C: 单例对象不可以定义私有属性,而类可以
D: 单例对象不可以继承,而类可以
答案: 【 单例对象不可以带参数,而类可以】
17、单选题:
Scala语言中,关于List的定义,不正确的是?
选项:
A: val list = List(1,2,3)
B: val list = List[Int](1,2,3)
C: val list = List[String]('A','B','C')
D: val list = List[String]()
答案: 【 val list = List[String]('A','B','C')】
18、单选题:
对于Map("book" -> 5, "pen" -> 2).map(m => m._1 -> m._2 * 2)的结果,下面哪个是正确的?
选项:
A: Map("bookbook" -> 5, "penpen" -> 2)
B: Map("bookbook" -> 10, "penpen" -> 4)
C: Map("book" -> 10, "pen" -> 4)
D: Map("book" -> 5, "pen" -> 2 ,"book" -> 5, "pen" -> 2)
答案: 【 Map("book" -> 10, "pen" -> 4)】
19、单选题:
以下单例对象,定义错误的是?
选项:
A: object Person{var PID = “”}
B: object Person(PID:String){ }
C: object Person{def PID = “”}
D: objec
