大数据面试题集锦(二)

本文深入探讨了Spark的相关知识点,包括RDD的特性、数据本地性、容错机制、数据倾斜的解决方案、RDD操作类型以及优化策略,如避免shuffle、设置并行度、管理数据位置和优化join操作等,旨在帮助面试者全面了解Spark的核心概念和技术要点。
摘要由CSDN通过智能技术生成

1.cache后面能不能接其他算子,它是不是action操作?

答:cache可以接其他算子,但是接了算子之后,起不到缓存应有的效果,因为会重新触发cache

cache不是action操作

2.reduceByKey是不是action

答:不是,很多人都会以为是actionreduce rddaction

3.数据本地性是在哪个环节确定的?

具体的task运行在那他机器上,dag划分stage的时候确定的

4.RDD的弹性表现在哪几点?

1)自动的进行内存和磁盘的存储切换;

2)基于Lingage的高效容错;

3task如果失败会自动进行特定次数的重试;

4stage如果失败会自动进行特定次数的重试,而且只会计算失败的分片;

5checkpointpersist,数据计算之后持久化缓存

6)数据调度弹性,DAG TASK调度和资源无关

7)数据分片的高度弹性,a.分片很多碎片可以合并成大的,b.par

5.常规的容错方式有哪几种类型?

1.数据检查点,会发生拷贝,浪费资源

2.记录数据的更新,每次更新都会记录下来,比较复杂且比较消耗性能

6.RDD通过Linage(记录数据更新)的方式为何很高效?

1lazy记录了数据的来源,RDD是不可变的,且是lazy级别的,且rDD

之间构成了链条,lazy是弹性的基石。由于RDD不可变,所以每次操作就

产生新的rdd,不存在全局修改的问题,控制难度下降,所有有计算链条

将复杂计算链条存储下来,计算的时候从后往前回溯

900步是上一个stage的结束,要么就checkpoint

2)记录原数据,是每次修改都记录,代价很大

如果修改一个集合,代价就很小,官方说rdd

粗粒度的操作,是为了效率,为了简化,每次都是

操作数据集合,写或者修改操作,都是基于集合的

rdd的写操作是粗粒度的,rdd的读操作既可以是粗粒度的

也可以是细粒度,读可以读其中的一条条的记录。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值