spark题目

1. Spark 的四大组件下面哪个不是 (D )

A.Spark Streaming

B Mlib

C Graphx

D Spark R

Spark SQL

 

2.下面哪个端口不是 spark 自带服务的端口 (C )

A.8080

B.4040

C.8090

D.18080

4040:单机调试窗口;

spark集群的web端口:8080

history server端口:18080

如果是集群模式,可以通过Spark日志服务器xxxxx:18088

或者yarnUI进入到应用xxxx:8088,进入相应的Spark UI界面。

 

3.spark 1.4 版本的最大变化 (B )

A spark sql Release 版本

B 引入 Spark R

C DataFrame

D支持动态资源分配

R是一个广泛应用于统计计算和统计制图的优秀编程语言,2015年夏随着Spark 1.4版本一起发布

 

4. Spark Job 默认的调度模式 (A )

A FIFO  

B FAIR  

C 无  

D 运行时指定

默认情况下,以FIFO(先进先出)方式调度。每个Job被切分为多个Stage

FAIR共享模式下,Spark在多Job间以轮询(round robin)方式为任务分配资源,各任务用于大致相当的优先级来共享集群的资源

 

5.哪个不是本地模式运行的条件 ( D)

A spark.localExecution.enabled=true  

B 显式指定本地运行

C finalStage无父Stage

D partition默认值

Partition与模式运行无较大关系

 

6.下面哪个不是 RDD 的特点 (C )

A. 可分区  

B 可序列化  

C 可修改  

D 可持久化

一个RDD可以包含多个分区

可用Kryo进行序列化操作

RDD作为数据结构,本质上是一个只读的分区记录集合,不可修改,可以新建

对于多次使用的RDD将其持久化到缓存,persisit

 

7. 关于广播变量,下面哪个是错误的 (D )

A 任何函数调用   

B 是只读的  

C 存储在各个节点   

D 存储在磁盘或HDFS

广播变量允许程序员将一个只读的变量缓存在每台机器上, 存储在executor,也就是内存中

 

8. 关于累加器,下面哪个是错误的 (D )

A 支持加法

B 支持数值类型

C 可并行

D 不支持自定义类型

累加器:仅仅被相关操作累加的变量,在并行中被有效支持,原生只支持数值类型,编程者可以添加新类型的支持

 

9.Spark 支持的分布式部署方式中哪个是错误的 (D )

A standalone

B spark on mesos 

C spark on YARN

D Spark on local

Standalone:独立模型

Spark on mesos1)粗粒度模式2)细粒度模式

Spark on YARN1yarn-cluster:适用于生产环境2yarn-client:适用于交互,调试

 

10.Stage的Task 的数量由什么决定 (A )

A Partition

B Job

C Stage

D TaskScheduler

Task数量由Partition决定,因为每一个 task 只是处理一个 partition 上的数据

 

11.下面哪个操作是窄依赖 (B )

A join

B filter

C group

D sort

窄依赖的函数有:map, filter, union, join(RDDhash-partitioned ), mapPartitions, mapValues

宽依赖的函数有:groupByKey, join(RDD不是hash-partitioned ), partitionBy

 

12.下面哪个操作肯定是宽依赖 (C )

A map

B flatMap

C reduceByKey

D sample

同上

 

13.spark 的 master 和 worker 通过什么方式进行通信的? (D )

A http

B nio

C netty

D Akka

SparkClientMasterWorker之间的通信使用akka完成。

模块之间的通信机制可以分为基于消息的传递和基于资源共享的同步机制。

Spak中的ClientMasterWorker实际上都是一个actor

 

14 默认的存储级别 (A )

A MEMORY_ONLY

B MEMORY_ONLY_SER

C MEMORY_AND_DISK

D MEMORY_AND_DISK_SER

1.MEMORY_ONLY

使用未序列化的Java对象格式,将数据保存在内存中。如果内存不够存放所有的数据,则数据可能就不会进行持久化。那么下次对这个RDD执行算子操作时,那些没有被持久化的数据,需要从源头处重新计算一遍。这是默认的持久化策略,使用cache()方法时,实际就是使用的这种持久化策略。

2.MEMORY_AND_DISK

使用未序列化的Java对象格式,优先尝试将数据保存在内存中。如果内存不够存放所有的数据,会将数据写入磁盘文件中,下次对这个RDD执行算子时,持久化在磁盘文件中的数据会被读取出来使用。

3.MEMORY_ONLY_SER

基本含义同MEMORY_ONLY。唯一的区别是,会将RDD中的数据进行序列化,RDD的每个partition会被序列化成一个字节数组。这种方式更加节省内存,从而可以避免持久化的数据占用过多内存导致频繁GC

4.MEMORY_AND_DISK_SER

基本含义同MEMORY_AND_DISK。唯一的区别是,会将RDD中的数据进行序列化,RDD的每个partition会被序列化成一个字节数组。这种方式更加节省内存,从而可以避免持久化的数据占用过多内存导致频繁GC

 

15 spark.deploy.recoveryMode 不支持那种 (D )

A.ZooKeeper

B. FileSystem

D NONE

D Hadoop

缺省是NONE模式

 

16.下列哪个不是 RDD 的缓存方法 (C )

A persist()

B Cache()

C Memory()

A  persist()

Set this RDD's storage level to persist its values across operations after the first time it is computed.

B  Cache()   Persist this RDD with the default storage level (MEMORY_ONLY).

Memory()   RDD api中未找到该方法

 

17.Task 运行在下来哪里个选项中 Executor 上的工作单元 (C )

A Driver program

B. spark master

C.worker node

D Cluster manager

在每个WorkerNode上为某应用启动的一个进程,该进程负责运行任务,并且负责将数据存在内存或者磁盘上,每个任务都有各自独立的Executor

Executor是一个执行Task的容器。它的主要职责是:

1、初始化程序要执行的上下文SparkEnv,解决应用程序需要运行时的jar包的依赖,加载类。

2、同时还有一个ExecutorBackendcluster manager汇报当前的任务状态,这一方面有点类似hadooptasktrackertask

总结:Executor是一个应用程序运行的监控和执行容器。

 

18.hive 的元数据存储在 derby 和 MySQL 中有什么区别 (B )

A.没区别

B.多会话

C.支持网络环境

D数据库的区别

知识点暂未明确

 

19.DataFrame 和 RDD 最大的区别 (B )

A.科学统计支持

B.多了 schema

C.存储方式不一样

D.外部数据源支持

DataFrame多了数据的结构信息,即schemaRDD是分布式的Java对象的集合。DataFrame是分布式的Row对象的集合。DataFrame除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效率、减少数据读取以及执行计划的优化,比如filter下推、裁剪等。

 

20.Master 的 ElectedLeader 事件后做了哪些操作 (D )

A. 通知 driver

B.通知 worker

C.注册 application

D.直接 ALIVE

MasterSpark第一次启动时会处于ALIVE状态,其他时候则会处于RECOVERING状态

 

 

猜你喜欢

转载自blog.csdn.net/b0207191/article/details/88535470
今日推荐