网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
停🤚
不要往下滑了,
默默想5min,
看看这5道面试题你都会吗?
面试题 01、spark.default.parallelism这个参数有什么意义,实际生产中如何设置?
面试题02、spark.shuffle.memoryFraction参数的含义,以及优化经验?
面试题 03、Spark中standalone模式特点,有哪些优点和缺点?
面试题04、FIFO调度模式的基本原理、优点和缺点?
面试题05、FAIR调度模式的优点和缺点?
以下答案仅供参考:
面试题 01、spark.default.parallelism这个参数有什么意义,实际生产中如何设置?
1)参数用于设置每个stage的默认task数量。这个参数极为重要,如果不设置可能会直接影响你的Spark作业性能;
2)很多人都不会设置这个参数,会使得集群非常低效,你的cpu,内存再多,如果task始终为1,那也是浪费, spark官网建议task个数为CPU的核数*executor的个数的2~3倍。
面试题02、spark.shuffle.memoryFraction参数的含义,以及优化经验?
1)spark.shuffle.memoryFraction是shuffle调优中 重要参数,shuffle从上一个task拉去数据过来,要在Executor进行聚合操作, 聚合操作时使用Executor内存的比例由该参数决定,默认是20%如果聚合时数据超过了该大小,那么就会spill到磁盘,极大降低性能;
2)如果Spark作业中的RDD持久化操作较少,shuffle操作较多时,建议降低持久化操作的内存占比,提高shuffle操作的内存占比比例, 避免shuffle过程中数据过多时内存不够用,必须溢写到磁盘上,降低了性能。此外,如果发现作业由于频繁的gc导致运行缓慢,意味着task执行用户代码的内存不够用, 那么同样建议调低这个参数的值。
面试题03、Spark中standalone模式特点,有哪些优点和缺点?
1)特点: (1)standalone是master/slave架构,集群由Master与Worker节点组成,程序通过与Master节点交互申请资源,Worker节点启动Executor运行; (2)standalone调度模式使用FIFO调度方式; (3)无依赖任何其他资源管理系统,Master负责管理集群资源。
2)优点: (1)部署简单; (2)不依赖其他资源管理系统。
3)缺点: (1)默认每个应用程序会独占所有可用节点的资源,当然可以通过spark.cores.max来决定一个应用可以申请的CPU cores个数; (2)可能有单点故障,需要自己配置master HA。
面试题04、FIFO调度模式的基本原理、优点和缺点?
基本原理:按照先后顺序决定资源的使用,资源优先满足最先来的job。
第一个job优先获取所有可用的资源,接下来第二个job再获取剩余资源。 以此类推,如果第一个job没有占用所有的资源,那么第二个job还可以继续获取剩余资源,这样多个job可以并行运行,如果第一个job很大,占用所有资源, 则第二job就需要等待,等到第一个job释放所有资源。
优点和缺点:
1)适合长作业,不适合短作业;
2)适合CPU繁忙型作业(计算时间长,相当于长作业),不利于IO繁忙型作业(计算时间短,相当于短作业)。
面试题05、FAIR调度模式的优点和缺点?
所有的任务拥有大致相当的优先级来共享集群资源,spark多以轮训的方式为任务分配资源,不管长任务还是端任务都可以获得资源,并且获得不错的响应时间, 对于短任务,不会像FIFO那样等待较长时间了,通过参数spark.scheduler.mode 为FAIR指定。
总结
今天我们复习了面试中常考的Spark相关的五个问题,你做到心中有数了么?
其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在面试期间尴尬!平时不流汗,面试多流泪!
对了,如果你的朋友也在准备面试
,请将这个系列扔给他,
好了,今天就到这里,学废了的同学,记得在评论区留言:打卡
。给同学们以激励。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
义、实战项目、大纲路线、讲解视频,并且后续会持续更新**