Spark基础面试题有哪些

发布时间:2021-11-17 11:53:04 作者:iii
来源:亿速云 阅读:178

本篇内容介绍了“Spark基础面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

① 面试题:简述 Spark 的架构与作业提交流程(画图讲解,注明各个部分的作用)

Spark基础面试题有哪些        Spark基础面试题有哪些

两张图一起看,左侧图是简化版,右侧图较完整。

YARN-Cluster任务提交流程:

参考链接:https://www.jianshu.com/p/e1cf4c58ae35

Yarn模式,Spark客户端直接连接Yarn,不需要额外构建Spark集群。yarn-client和yarn-cluster两种模式,区别如下:

① 主要区别在于:Driver程序的运行节点

② Driver的位置不同导致的性能的差异

② 面试题:简述 Spark 的两种核心 Shuffle(HashShuffle 与 SortShuffle) 的工作流程(包括未优化的 HashShuffle、优化的 HashShuffle、普 通的 SortShuffle 与 bypass 的SortShuffle)

参考链接:https://www.jianshu.com/p/6f55b8412f03

HashShuffleManager运行原理

Spark基础面试题有哪些

2.1 未经过优化的HashShuffleManager

假设前提:每个Executor只有1个CPU core,也就是说,无论这个Executor上分配多少个task线程,同一时间都只能执行一个task线程。

Spark基础面试题有哪些

上游的stage的task对相同的key执行hash算法,从而将相同的key都写入到一个磁盘文件中,而每一个磁盘文件都只属于下游stage的一个task。在将数据写入磁盘之前,会先将数据写入到内存缓冲,当内存缓冲填满之后,才会溢写到磁盘文件中。但是这种策略的不足在于,下游有几个task,上游的每一个task都就都需要创建几个临时文件,每个文件中只存储key取hash之后相同的数据,导致了当下游的task任务过多的时候,上游会堆积大量的小文件 。

具体的过程分为“写过程”和“读过程”,参看上面的链接。

2.2 经过优化的HashShuffleManager

假设前提:每个Executor只有1个CPU core,也就是说,无论这个Executor上分配多少个task线程,同一时间都只能执行一个task线程。

Spark基础面试题有哪些

Shuffle Write过程:

Shuffle Read过程:

SortShuffleManager运行原理

    SortShuffleManager的运行机制主要分成两种,一种是普通运行机制,另一种是bypass运行机制。当shuffle read task的数量小于等于spark.shuffle.sort.bypassMergeThreshold参数的值时(默认为200),就会启用bypass机制。

2.3 SortShuffleManager普通运行机制

Spark基础面试题有哪些

Shuffle Write过程:


2.4 SortShuffleManager的bypass机制
Spark基础面试题有哪些
 

Shuffle Write过程:

“Spark基础面试题有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. HTML基础面试题有哪些
  2. Java有哪些基础面试题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spark

上一篇:LRU缓存算法怎么用

下一篇:jquery如何获取tr里面有几个td

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》