下面这些关于 Spark 的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的。
基本概念和原则
首先,要搞清楚 Spark 的几个基本概念和原则,否则系统的性能调优无从谈起:
- 每一台 host 上面可以并行 N 个 worker,每一个 worker 下面可以并行 M 个 executor,task 们会被分配到 executor 上面去执行。Stage 指的是一组并行运行的 task,stage 内部是不能出现 shuffle 的,因为 shuffle 的就像篱笆一样阻止了并行 task 的运行,遇到 shuffle 就意味着到了 stage 的边界。
- CPU 的 core 数量,每个 executor 可以占用一个或多个 core
[……]阅读全文