自我介绍
项目的架构讲一下
Spark 调优用过哪些
参数设置和 SQL 代码改写。
Spark 基于内存的,什么时候会写磁盘
mapreduce 任务后期再计算的时候,每一个 job 的输出结果会落地到磁盘,后续有其他的 job 需要依赖于前面 job 的输出结果,这个时候就需要进行大量的磁盘 io 操作。性能就比较低。
spark 任务后期再计算的时候,job 的输出结果可以保存在内存中,后续有其他的 job 需要依赖于前面 job 的输出结果,这个时候就直接从内存中获取得到,避免了磁盘 io 操作,性能比较高。
对于 spark 程序和 mapreduce 程序都会产生 shuffle 阶段,在 shuffle 阶段中它们产生的数据都会落地到磁盘。