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

Posted manor的大数据奋斗之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据开发岗面试复习30天冲刺 - 日积月累,每日五题Day25——Spark12相关的知识,希望对你有一定的参考价值。

前言

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

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

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


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

面试题 01、CAPCACITY调度模式的优点和缺点?
面试题02、常见的数压缩方式,你们生产集群采用了什么压缩方式,提升了多少效率?
面试题 03、使用scala代码实现WordCount?
面试题04、Spark RDD 和 MapReduce2的区别?
面试题05、spark和Mapreduce快?为什么快呢?快在哪里呢?

以下答案仅供参考:

面试题 01、CAPCACITY调度模式的优点和缺点?

1)原理: 计算能力调度器支持多个队列,每个队列可配置一定的资源量,每个队列采用 FIFO 调度策略,为了防止同一个用户的作业独占队列中的资源,该调度器会对 同一用户提交的作业所占资源量进行限定。调度时,首先按以下策略选择一个合适队列:计算每个队列中正在运行的任务数与其应该分得的计算资源之间的 比值(即比较空闲的队列),选择一个该比值最小的队列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择, 同时考虑用户资源量限制和内存限制
2)优点:
(1)计算能力保证。支持多个队列,某个作业可被提交到某一个队列中。每个队列会配置一定比例的计算资源,且所有提交到队列中的作业 共享该队列中的资源; (2)灵活性。空闲资源会被分配给那些未达到资源使用上限的队列,当某个未达到资源的队列需要资源时,一旦出现空闲资源资源,便会分配给他们;
(3)支持优先级。队列支持作业优先级调度(默认是FIFO);
(4)多重租赁。综合考虑多种约束防止单个作业、用户或者队列独占队列或者集群中的资源;
(5)基于资源的调度。支持资源密集型作业,允许作业使用的资源量高于默认值,进而可容纳不同资源需求的作业。不过,当前仅支持内存资源的调度。

面试题02、常见的数压缩方式,你们生产集群采用了什么压缩方式,提升了多少效率?

1)数据压缩,大片连续区域进行数据存储并且存储区域中数据重复性高的状况下,可以使用适当的压缩算法。数组,对象序列化后都可以使用压缩,数更紧凑, 减少空间开销。常见的压缩方式有snappy,LZO,gz等
2)Hadoop生产环境常用的是snappy压缩方式(使用压缩,实际上是CPU换IO吞吐量和磁盘空间,所以如果CPU利用率不高,不忙的情况下, 可以大大提升集群处理效率)。snappy压缩比一般20%~30%之间,并且压缩和解压缩效率也非常高
(参考数据如下):
(1)GZIP的压缩率最高,但是其实CPU密集型的,对CPU的消耗比其他算法要多,压缩和解压速度也慢;
(2)LZO的压缩率居中,比GZIP要低一些,但是压缩和解压速度明显要比GZIP快很多,其中解压速度快的更多;
(3)Zippy/Snappy的压缩率最低,而压缩和解压速度要稍微比LZO要快一些。
提升了多少效率可以从2方面回答:1)数据存储节约多少存储,2)任务执行消耗时间节约了多少,可以举个实际例子展开描述。

面试题03、使用scala代码实现WordCount?

val conf = new SparkConf() 
val sc = new SparkContext(conf) 
val line = sc.textFile("xxxx.txt") 
line.flatMap(.split(" ")).map((,1)).reduceByKey(+). 
collect().foreach(println) 
sc.stop()

面试题04、Spark RDD 和 MapReduce2的区别?

1)mr2只有2个阶段,数据需要大量访问磁盘,数据来源相对单一 ,spark RDD ,可以无数个阶段进行迭代计算,数据来源非常丰富,数据落地介质也 非常丰富spark计算基于内存;
2)MapReduce2需要频繁操作磁盘IO,需要大家明确的是如果是SparkRDD的话,你要知道每一种数据来源对应的是什么,RDD从数据源加载数据, 将数据放到不同的partition针对这些partition中的数据进行迭代式计算计算完成之后,落地到不同的介质当中。

面试题05、spark和Mapreduce快?为什么快呢?快在哪里呢?

Spark更加快的主要原因有几点:
1)基于内存计算,减少低效的磁盘交互;
2)高效的调度算法,基于DAG;
3)容错机制Lingage,主要是DAG和Lianage,即使spark不使用内存技术,也大大快于mapreduce。

总结

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

以上是关于大数据开发岗面试复习30天冲刺 - 日积月累,每日五题Day25——Spark12的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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