spark面试总结2
Spark core面试篇02 1.cache后面能不能接其他算子,它是不是action操作? 答:cache可以接其他算子,但是接了算子之后,起不到缓存应有的效果,因为会重新触发cache。 cache不是action操作 2.reduceByKey是不是action? 答:不是,很多人都会以为是action,reduce rdd是action 3.数据本地性是在哪个环节确定的? 具体的task运行在那他机器上,dag划分stage的时候确定的 4.RDD的弹性表现在哪几点? 1)自动的进行内存和磁盘的存储切换; 2)基于Lingage的高效容错; 3)task如果失败会自动进行特定次数的重试; 4)stage如果失败会自动进行特定次数的重试,而且只会计算失败的分片; 5)checkpoint和persist,数据计算之后持久化缓存 6)数据调度弹性,DAG TASK调度和资源无关 7)数据分片的高度弹性,a.分片很多碎片可以合并成大的,b.par 5.常规的容错方式有哪几种类型? 1).数据检查点,会发生拷贝,浪费资源 2).记录数据的更新,每次更新都会记录下来,比较复杂且比较消耗性能 6.RDD通过Linage(记录数据更新)的方式为何很高效? 1)lazy记录了数据的来源,RDD是不可变的,且是lazy级别的,且rDD 之间构成了链条,lazy是弹性的基石。由于RDD不可变