大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day22】——Spark9

163 阅读4分钟

这是我参与8月更文挑战的第22天,活动详情查看: 8月更文挑战

前言

大家好,我是程序员manor。作为一名大数据专业学生、爱好者,深知面试重要性,很多学生已经进入暑假模式,暑假也不能懈怠,正值金九银十的秋招 接下来我准备用30天时间,基于大数据开发岗面试中的高频面试题,以每日5题的形式,带你过一遍常见面试题及恰如其分的解答。

  相信只要一路走来,日积月累,我们终会在最高处见。 以古人的话共勉:道阻且长,行则将至;行而不辍,未来可期!

在这里插入图片描述

本栏目大数据开发岗高频面试题主要出自大数据技术专栏的各个小专栏,由于个别笔记上传太早,排版杂乱,后面会进行原文美化、增加。

@[toc] 停🤚 不要往下滑了, 默默想5min, 看看这5道面试题你都会吗?

面试题 01、Spark累加器有哪些特点?
面试题02、Spark hashParitioner的弊端是什么?
面试题 03、RangePartitioner分区的原理?
面试题04、rangePartioner分区器特点?
面试题05、如何理解Standalone模式下,Spark资源分配是粗粒度的?

在这里插入图片描述

在这里插入图片描述

以下答案仅供参考:

面试题 01、Spark累加器有哪些特点?

1)累加器在全局唯一的,只增不减,记录全局集群的唯一状态; 2)在exe中修改它,在driver读取; 3)executor级别共享的,广播变量是task级别的共享两个application不可以共享累加器,但是同一个app不同的job可以共享。

面试题02、spark hashParitioner的弊端是什么?

HashPartitioner分区的原理很简单,对于给定的key,计算其hashCode,并除于分区的个数取余,如果余数小于0,则用余数+分区的个数,最后返回的值就是 这个key所属的分区ID;弊端是数据不均匀,容易导致数据倾斜,极端情况下某几个分区会拥有rdd的所有数据。

面试题03、RangePartitioner分区的原理?

RangePartitioner分区则尽量保证每个分区中数据量的均匀,而且分区与分区之间是有序的,也就是说一个分区中的元素肯定都是比另一个分区内的元素小 或者大;但是分区内的元素是不能保证顺序的。简单的说就是将一定范围内的数映射到某一个分区内。其原理是水塘抽样。

面试题04、RangePartioner分区器特点?

rangePartioner尽量保证每个分区中数据量的均匀,而且分区与分区之间是有序的,一个分区中的元素肯定都是比另一个分区内的元素小或者大; 但是分区内的元素是不能保证顺序的。简单的说就是将一定范围内的数映射到某一个分区内。RangePartitioner作用:将一定范围内的数映射到某一个分区内, 在实现中,分界的算法尤为重要。算法对应的函数是rangeBounds。

面试题05、如何理解Standalone模式下,Spark资源分配是粗粒度的?

spark默认情况下资源分配是粗粒度的,也就是说程序在提交时就分配好资源,后面执行的时候使用分配好的资源,除非资源出现了故障才会重新分配。 比如Spark shell启动,已提交,一注册,哪怕没有任务,worker都会分配资源给executor。

总结

今天我们复习了面试中常考的Spark相关的五个问题,你做到心中有数了么? 其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在面试期间尴尬!平时不流汗,面试多流泪! 对了,如果你的朋友也在准备面试,请将这个系列扔给他, 好了,今天就到这里,学废了的同学,记得在评论区留言:打卡。给同学们以激励。 在这里插入图片描述