欢迎光临散文网 会员登陆 & 注册

锁屏面试题百日百刷-Spark篇(二十)

2023-04-01 17:17 作者:zjlala96  | 我要投稿

锁屏面试题百日百刷,每个工作日坚持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cn。已收录了每日更新的面试题的所有内容,还包含特色的解锁屏幕复习面试题、每日编程题目邮件推送等功能。让你在面试中先人一步!接下来的是今日的面试题:


1.简要描述Spark写数据的流程?

1)RDD调用compute方法,进行指定分区的写入

2)CacheManager中调用BlockManager判断数据是否已经写入,如果未写,则写入3)BlockManager中数据与其他节点同步

4)BlockManager根据存储级别写入指定的存储层

5)BlockManager向主节点汇报存储状态中

2.介绍一下你对Unified Memory Management内存管理模型的理解?

Spark中的内存使用分为两部分:执行(execution)与存储(storage)。执行内存主要用于shuffles、joins、sorts和aggregations,存储内存则用于缓存或者跨节点的内部数据传输。

3.如何理解Spark的动态内存占用机制?

4.列举你了解的序列化方法,并谈谈序列化有什么好处?

1)序列化:将对象转换为字节流,本质也可以理解为将链表的非连续空间转为连续空间存储的数组,可以将数据进行流式传输或者块存储,反序列化就是将字节流转为对象。kyro,Java的serialize等

2)spark中的序列化常见于

· 进程间通讯:不同节点的数据传输

· 数据持久化到磁盘

在spark中扮演非常重要的角色,序列化和反序列化的程度会影响到数据传输速度,甚至影响集群的传输效率,因此,高效的序列化方法有2点好处:a.提升数据传输速度,b.提升数据读写IO效率。

5.常见的数压缩方式,你们生产集群采用了什么压缩方式,提升了多少效率?

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)任务执行消耗时间节约了多少,可以举个实际例子展开描述。

锁屏面试题百日百刷-Spark篇(二十)的评论 (共 条)

分享到微博请遵守国家法律