Spark习题汇总

单选

网络中很多数据是以图的形式呈现的,比如社交网络、交通事故,现场证据采集等,为了解决大型图的分布式计算问题,最适合采用以下哪种计算框架:

Spark Core

Storm

Pregel (答案)

Dremel


Hadoop的生态系统组件之一Sqoop的功能是?

负责集群资源调度管理的组件

用来在Hadoop和关系数据库之间的交换数据,改进数据的互操作性 (答案)

用来存储非结构化和半结构化的松散数据

提供高可靠性、高可用、分布式的海量日志采集


MapReduce的一个基本设计思想是?

提高数据的冗余度

数据向计算靠拢

计算向数据靠拢 (答案)

提高数据的串行计算速度


经过多年的发展,Hadoop生态系统不断完善和成熟,目前已经包含多个子项目,其中YARN的主要功能是?

分布式海量日志采集、聚合和传输系统

分布式并行编程模型

负责集群资源调度管理的组件 (答案)

数据仓库工具


大数据计算模式有以下四种,对电子商务网站购物平台数据的实时分析处理过程属于哪一种?

查询分析计算

批处理计算

图计算

流计算 (答案)


以下哪个不是Spark的组件?

Spark Streaming

Flink (答案)

GraphX

MLlib


Task是Executor上的工作单元,运行于下面哪个组件上?

Spark Master

Driver Program

Cluster Manager

Worker Node (答案)


在Spark中,为应用构建起基本的运行环境,即由Driver创建一个( ),进行资源的申请、任务的分配和监控

RDD

DAGScheduler

SparkContext (答案)

TaseSet


下面哪个操作肯定是宽依赖?

union

reduceByKey (答案)

filter

map


下面哪个不是 RDD 的特点 ?

可持久化

可修改 (答案)

可序列化

可分区


假设有一个RDD的名称为words,包含9个元素,分别是:(”Hadoop”,1),(”is”,1),(”good”,1),(”Spark”,1),(”is”,1),(”fast”,1),(”Spark”,1),(”is”,1),(”better”,1)。则语句words.groupByKey()的执行结果得到的新的RDD中,所包含的元素是

(”good”,(1,1)),(”Spark”,(1,1,1)),(”is”,1),(”fast”,1)

(”Hadoop”,1),(”is”,1),(”good”,1),(”Spark”,1),(”is”,1)

(”good”,1),(”Spark”,1),(”is”,1),(”fast”,1)

(”Hadoop”,1),(”is”,(1,1,1)),(”good”,1),(”Spark”,(1,1)),(”fast”,1),(”better”,1) (答案)


val words = Array("one", "two", "two", "three", "three", "three")**
val wordPairsRDD = sc.parallelize(words).map(word => (word, 1))
val wordCountsWithGroup = wordPairsRDD. groupByKey().map(t => (t._1, t._2.sum))
**上述语句的执行结果wordCountsWithGroup中包含的元素是

(“one”,1),(“two”,2),(“three”,3) (答案)

(“one”,3),(“two”,2),(“three”,1)

(“one”,1),(“two”,1),(“three”,1)

(“one”,1),(“two”,2),(“three”,1)


下面哪个方法是用来从文件系统中加载数据创建RDD的

textFile() (答案)

textfile()

parallelize()

txtFile()


下面哪个算子是行动算子

reduceByKey()

count() (答案)

makeRDD()

map()


val words = Array("one", "two", "two", "three", "three", "three")**
val wordPairsRDD = sc.parallelize(words).map(word => (word, 1))
wordCountsWithReduce = wordPairsRDD.reduceByKey(+)
**上述语句的执行结果wordCountsWithReduce中包含的元素是

(“one”,1),(“two”,2),(“three”,2)

(“one”,3),(“two”,2),(“three”,1)

(“one”,1),(“two”,2),(“three”,1)

(“one”,1),(“two”,2),(“three”,3) (答案)


下面关于Spark SQL架构的描述错误的是:

Spark SQL在Hive兼容层面仅依赖HiveQL解析和Hive元数据

Spark SQL执行计划生成和优化需要依赖Hive来完成 (答案)

在Shark原有的架构上重写了逻辑执行计划的优化部分,解决了Shark存在的问题

Spark SQL执行计划生成和优化都由Catalyst(函数式关系查询优化框架)负责


以下操作中,哪个不是DataFrame的常用操作:

filter()

sendto() (答案)

select()

printSchema()


关于Shark,下面描述正确的是:

Shark提供了类似Pig的功能

Shark重用了Hive中的HiveQL解析、逻辑执行计划翻译、执行计划优化等逻辑

Shark提供了类似Pig的功能

Shark把SQL语句转换成MapReduce作业 (答案)


要把一个DataFrame保存到people.json文件中,下面语句哪个是正确的:

df.write.format("csv").save("people.json")

df.write.csv("people.json")

df.json("people.json")

df.write.json("people.json") (答案)


DataFrame是一种以( )为基础的分布式数据集

String

Dstreaming

RDD (答案)

Text


( )实现了SQLContext及HiveContext所有功能

DStream

SparkSession (答案)

MR

SparkContext


下面关于Spark Streaming和Storm的描述正确的是:

Spark Streaming和Storm都可以实现毫秒级的流计算

Spark Streaming可以实现毫秒级的流计算,而Storm无法实现毫秒级响应

Spark Streaming和Storm都无法实现毫秒级的流计算

Spark Streaming无法实现毫秒级的流计算,而Storm可以实现毫秒级响应 (答案)


下面描述错误的是:

在RDD编程中需要生成一个SparkContext对象

运行一个Spark Streaming程序,就需要首先生成一个StreamingContext对象

在Spark SQL编程中需要生成一个StreamingContext对象 (答案)

在Spark SQL编程中需要生成一个SparkSession对象


下面不属于Spark Streaming基本输入源的是:

套接字流

文件流

双向数据流 (答案)

RDD队列流


以下流计算框架中,哪个不是开源的:

Spark Streaming

Yahoo! S4

IBM StreamBase (答案)

Twitter Storm


下面关于Spark Streaming的描述错误的是:

Spark Streaming可整合多种输入数据源,如Kafka、Flume、HDFS,甚至是普通的TCP套接字

Spark Streaming的数据抽象是DataFrame (答案)

Spark Streaming的基本原理是将实时输入数据流以时间片为单位进行拆分,然后采用Spark引擎以类似批处理的方式处理每个时间片数据

Spark Streaming最主要的抽象是DStream(Discretized Stream,离散化数据流),表示连续不断的数据流


下面关于评估器(Estimator)的描述错误的是:

评估器实现了方法fit(),它接受一个DataFrame并产生一个转换器

在机器学习流水线里,评估器通常是被用来操作 DataFrame数据并生成一个转换器

评估器是学习算法或在训练数据上的训练方法的概念抽象

评估器实现了方法transfrom(),它接受一个DataFrame并产生一个转换器 (答案)


下面关于转换器(Transformer)的描述错误的是:

技术上,转换器实现了一个方法transform(),它通过附加一个或多个列,将一个DataFrame转换为另一个DataFrame

转换器是一种可以将一个DataFrame转换为另一个DataFrame的算法

一个模型就是一个转换器,它把一个不包含预测标签的测试数据集DataFrame打上标签,转化成另一个包含预测标签的 DataFrame

技术上,转换器实现了一个方法fit(),它通过附加一个或多个列,将一个DataFrame转换为另一个DataFrame (答案)


下面关于机器学习流水线(PipeLine)的描述,错误的是:

流水线构建好以后,就是一个转换器(Transformer) (答案)

PipelineStage称为工作流阶段,包括转换器和评估器,比如指标提取和转换模型训练等

要构建一个机器学习流水线,首先需要定义流水线中的各个PipelineStage

流水线将多个工作流阶段(转换器和评估器)连接在一起,形成机器学习的工作流,并获得结果输出




多选

Flink和Spark一样,都是基于内存的计算框架,都支持流计算,在流式处理方面,以下选项是Flink的主要特点的有:

Flink是一行一行地处理数据 (答案)

Flink支持增量迭代,具有对迭代进行自动优化的功能 (答案)

Flink可以支持毫秒级的响应 (答案)

Flink只能支持秒级的响应


关于Hadoop生态系统中HBase与其它部分的关系,以下说法正确的有:

利用Pig和Hive为HBase提供了高层语言支持 (答案)

利用Zookeeper作为协同服务,实现稳定服务和失败恢复 (答案)

使用HDFS作为高可靠的底层存储,利用廉价集群提供海量数据存储能力 (答案)

使用Sqoop为HBase提供了高效便捷的RDBMS数据导入功能 (答案)


Hadoop两大核心组成部分是什么?

分布式计算框架MapReduce (答案)

资源调度管理框架YARN

分布式协作服务Zookeeper

分布式文件系统HDFS (答案)


目前学术界和业界比较认可的关于大数据的四个特点是?

数据类型多 (答案)

价值密度低 (答案)

数据量大 (答案)

处理速度快 (答案)


大数据处理的基本流程有以下哪四个步骤?

结果呈现 (答案)

数据采集 (答案)

存储管理 (答案)

处理分析 (答案)


以下是Spark的主要特点的有?

运行速度快 (答案)

运行模式多样 (答案)

容易使用,简洁的API设计有助于用户轻松构建并行程序 (答案)

通用性,Spark提供了完整而强大的技术栈 (答案)


目前的大数据处理典型应用场景可分为哪几个类型?

复杂的批量数据处理 (答案)

基于实时数据流的数据处理 (答案)

大数据的分布式计算

基于历史数据的交互式查询 (答案)


Spark的运行架构包括哪些?

执行进程(Executor) (答案)

任务控制节点Driver Program (答案)

Worker Node (答案)

集群资源管理器(Cluster Manager) (答案)


以下选项中哪些是Spark的优点?

可以将中间结果持久化到内存 (答案)

利用进程模型

表达能力有限

具有高效的容错性 (答案)


Spark可以采用几种不同的部署方式,以下正确的部署方式有?

Standalone (答案)

Spark on Mesos (答案)

Spark on YARN (答案)

Local (答案)


Spark部署模式有哪几种?

YARN模式 (答案)

Standalone模式 (答案)

Local模式(单机模式) (答案)

Mesos模式 (答案)


spark-shell在启动时,采用yarn-client模式时,以下说法正确的是?

当用户提交了作业之后,不能关掉Client (答案)

该模式不适合运行交互类型的作业

该模式适合运行交互类型的作业 (答案)

当用户提交了作业之后,就可以关掉Client


下面描述正确的是:

Spark和Hadoop是竞争关系,二者不能组合使用

Hadoop和Spark不能部署在同一个集群中

Hadoop只包含了存储组件,不包含计算组件

Spark是一个分布式计算框架,可以和Hadoop组合使用 (答案)


spark-shell在启动时,采用yarn-cluster模式时,以下说法正确的是?

该模式不适合运行交互类型的作业 (答案)

该模式适合运行交互类型的作业

当用户提交了作业之后,就可以关掉Client (答案)

当用户提交了作业之后,不能关掉Client


HDFS若启动成功,系统会列出以下哪些进程?

DataNode (答案)

SecondaryNameNode (答案)

HDFS

NameNode (答案)


集群上运行Spark应用程序的方法步骤有哪些?

查看集群信息以获得应用程序运行的相关信息 (答案)

启动Spark的Master节点和所有Slave节点 (答案)

启动Hadoop集群 (答案)

在集群中运行应用程序JAR包 (答案)


关于Hadoop和Spark的相互关系,以下说法正确的是?

Spark要操作Hadoop中的数据,需要先启动HDFS (答案)

Spark负责数据的计算 (答案)

Hadoop负责数据的存储和管理 (答案)

Hadoop和Spark可以相互协作 (答案)


spark-shell在启动时,采用local[*]时,它的含义是?

使用任意个线程来本地化运行Spark

使用与逻辑CPU个数相同数量的进程来本地化运行Spark

使用单个线程来本地化运行Spark

使用与逻辑CPU个数相同数量的线程来本地化运行Spark (答案)


开发Spark独立应用程序的基本步骤通常有哪些?

通过spark-submit运行程序 (答案)

编译打包 (答案)

编写Spark应用程序代码 (答案)

安装编译打包工具,如sbt,Maven (答案)


判断HDFS是否启动成功,可以通过哪个命令?

spark

start-dfs

jps (答案)

hdfs


以下操作中,哪些是转换(Transformation)操作

count()

reduceByKey(func) (答案)

filter() (答案)

first()


关于RDD分区的作用,下面描述正确的是

增加并行度 (答案)

减少通信开销 (答案)

减少并行度

增加时间开销


RDD操作包括哪两种类型

分组(GroupBy)

行动(Action) (答案)

连接(Join)

转换(Transformation) (答案)


以下关于RDD的持久化的描述,正确的是

使用cache()方法时,会调用persist(MEMORY_ONLY) (答案)

persist(MEMORY_ONLY):表示将RDD作为反序列化的对象存储于JVM中,如果内存不足,就要按照LRU原则替换缓存中的内容 (答案)

通过持久化(缓存)机制可以避免重复计算的开销 (答案)

persist(MEMORY_AND_DISK):表示将RDD作为反序列化的对象存储在JVM中,如果内存不足,超出的分区将会被存放在硬盘上 (答案)


以下操作中,哪些是行动(Action)操作

map()

collect() (答案)

reduce() (答案)

groupByKey()


要读取people.json文件生成DataFrame,可以使用下面哪些命令:

spark.read.json("people.json") (答案)

spark.read.parquet("people.json")

spark.read.format("csv").load("people.json")

spark.read.format("json").load("people.json") (答案)


下面关于DataFrame的描述正确的是:

Spark能够轻松实现从MySQL到DataFrame的转化,并且支持SQL查询 (答案)

DataFrame比原有的RDD转化方式更加简单易用,而且获得了更高的计算性能 (答案)

DataFrame是一种以RDD为基础的分布式数据集,提供了详细的结构信息 (答案)

DataFrame的推出,让Spark具备了处理大规模结构化数据的能力 (答案)


Shark的设计导致了两个问题:

Spark是线程级并行,而MapReduce是进程级并行,因此,Spark在兼容Hive的实现上存在线程安全问题,导致Shark不得不使用另外一套独立维护的、打了补丁的Hive源码分支 (答案)

执行计划优化不依赖于Hive,方便添加新的优化策略

执行计划优化完全依赖于Hive,不方便添加新的优化策略 (答案)

Spark是进程级并行,而MapReduce是线程级并行,因此,Spark在兼容Hive的实现上存在线程安全问题,导致Shark不得不使用另外一套独立维护的、打了补丁的Hive源码分支


下面关于为什么推出Spark SQL的原因的描述正确的是:

可以支持大量的数据源和数据分析算法,组合使用Spark SQL和Spark MLlib,可以融合传统关系数据库的结构化数据管理能力和机器学习算法的数据处理能力 (答案)

Spark SQL无法对各种不同的数据源进行整合

Spark SQL无法融合结构化数据管理能力和机器学习算法的数据处理能力

Spark SQL可以提供DataFrame API,可以对内部和外部各种数据源执行各种关系操作 (答案)


以下关于流数据特征的描述,哪些是正确的:

数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序 (答案)

数据来源众多,格式复杂 (答案)

数据量大,但是不十分关注存储,一旦流数据中的某个元素经过处理,要么被丢弃,要么被归档存储 (答案)

数据快速持续到达,潜在大小也许是无穷无尽的 (答案)


流计算处理流程一般包括哪三个阶段:

数据实时计算 (答案)

实时查询服务 (答案)

数据实时采集 (答案)

数据汇总分析


以下产品哪些属于日志采集组件:

Flume (答案)

MySQL

Scribe (答案)

GraphX


编写Spark Streaming程序的基本步骤包括:

调用StreamingContext对象的start()方法来开始接收数据和处理流程 (答案)

通过创建输入DStream(Input Dstream)来定义输入源 (答案)

通过对DStream应用转换操作和输出操作来定义流计算 (答案)

通过调用StreamingContext对象的awaitTermination()方法来等待流计算进程结束 (答案)


流处理系统与传统的数据处理系统的不同之处在于:

流处理系统无需用户主动发出查询,实时查询服务可以主动将实时结果推送给用户 (答案)

流处理系统处理的是历史的数据,而传统的数据处理系统处理的是实时的数据

用户通过流处理系统获取的是实时结果,而通过传统的数据处理系统获取的是过去某一时刻的结果 (答案)

流处理系统处理的是实时的数据,而传统的数据处理系统处理的是预先存储好的静态数据 (答案)


MLlib目前支持的常见的机器学习问题有哪些?

聚类 (答案)

回归 (答案)

协同过滤 (答案)

分类 (答案)


下面关于Spark MLlib库的描述正确的是:

MLlib库从1.2版本以后分为两个包:spark.mllib和spark.ml (答案)

spark.mllib包含基于RDD的原始算法API (答案)

spark.ml则提供了基于RDD的、高层次的API

spark.mllib包含基于DataFrame的原始算法API


posted @ 2024-11-21 10:47  你这过氧化氢掺水了  阅读(15)  评论(0编辑  收藏  举报