[大数据面试]-- 3.Spark 题目

========= 基础 =========

1、RDD 的 基础

https://www.jianshu.com/p/fca10efd2315

https://www.jianshu.com/p/6319d6239f03

https://www.jianshu.com/p/64ade88f0e19

https://blog.csdn.net/weixin_38750084/article/details/82955062

源码

https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/SparkPi.scala

https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/RDD.scala

https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/PartitionPruningRDD.scala

2、driver的功能是什么?

一个程序,它声明数据的RDD上的转换和操作,并将这些请求提交给master

功能

1)、创建SparkContext的程序,连接到给定的SparkMaster

2)、划分rdd stage 并生成 DAGScheduler

3)、通过taskScheduler生成并发送task到executor

它的位置独立于master、slave。您在master节点,也可以从另一个节点运行它。唯一的要求是它必须在一个可以从Spark Workers访问的网络中

2、RDD宽依赖和窄依赖?

  • wide dependency or shuffle dependency:多个子RDD的Partition会依赖同一个父RDD的Partition
  • narrow dependency:每一个父RDD的Partition最多被子RDD的一个Partition使用

3、map 和 flatMap、mapPartition 的区别?

map:通过向这个RDD的所有元素应用一个函数来返回一个新的RDD。

flatMap:返回一个新的RDD 首将一个函数应用于该RDD的所有元素,然后将结果展平。

mapPartitions:通过向这个RDD的每个分区应用一个函数来返回一个新的RDD,preservespartitioning 指示输入函数是否保留分区器,默认为false,除非这是pairRDD,并且输入函数不修改keys

4、spark中的RDD是什么?有哪些特性?

RDD是弹性分布式数据集 不可变的可并行操作的元素的分区集合

每个RDD具有五个主要特性:

1)、有分区列表

2)、可用于计算每个分区的函数

3)、依赖于其他RDD的列表

4)、可选pairRDD的分区器(例如说RDD是哈希分区的)

5)、优先选择本地最优的位置去计算每个分片(例如,HDFS文件块位置)即数据的本地性

5、spark中如何划分 stage

stage是一组并行任务,作为job的部分 计算相同的函数

stage通过是否存在Shuffle或者宽依赖为边界来划分的 如遇到reduceByKey,groupByKey的算子等算子

从当前job的最后一个算子往前推,遇到宽依赖,那么当前在这个批次中的所有算子操作都划分成一个stage,然后继续按照这种方式在继续往前推,如在遇到宽依赖,又划分成一个stage,一直到最前面的一个算子。最后整个job会被划分成多个stage,而stage之间又存在依赖关系,后面的stage依赖于前面的stage

========= 进阶 =========

1、Spark 优化方式

2、Spark 如何防止 OOM

3、Hadoop 和 Spark 的 shuffle有什么区别

shuffle 是洗牌过程,将数据打乱,然后按照用户的指示输出。

4、Spark 为什么要持久化?哪些场景需要 persist

持久化是 control 操作,中间结果比较难算出来,而且还需要复用。

比如机器学习

5、什么是 Transformation 和 action

按需执行的函数。

6、Spark 作业执行原理

7、spark Job 调度流程

8、减少 Spark IO

广播变量、累加器、减少Shuffle

9、一致性语义有几个级别

10、CAP 理论

11、Spark-submit --files 和 addFile 的区别

12、spark 如何跳过 失败的 task

发布了508 篇原创文章 · 获赞 613 · 访问量 201万+

猜你喜欢

转载自blog.csdn.net/high2011/article/details/98522380
今日推荐