Spark常规性能调优三:并行度调节
Spark 作業(yè)中的并行度指各個 stage 的 task 的數(shù)量。
如果并行度設置不合理而導致并行度過低,會導致資源的極大浪費,例如,20 個 Executor,每個 Executor 分配 3 個 CPU core,而 Spark 作業(yè)有 40 個 task,這樣每個 Executor 分配到的task 個數(shù)是 2 個,這就使得每個 Executor 有一個 CPU core 空閑,導致資源的浪費。理想的并行度設置,應該是讓并行度與資源相匹配,簡單來說就是在資源允許的前提下,并行度要設置的盡可能大,達到可以充分利用集群資源。合理的設置并行度,可以提升整個Spark 作業(yè)的性能和運行速度。
Spark 官方推薦,task 數(shù)量應該設置為 Spark 作業(yè)總 CPU core 數(shù)量的 2~3 倍。之所以沒有推薦 task 數(shù)量與 CPU core 總數(shù)相等,是因為 task 的執(zhí)行時間不同,有的 task 執(zhí)行速度快而有的 task 執(zhí)行速度慢,如果 task 數(shù)量與 CPU core 總數(shù)相等,那么執(zhí)行快的 task 執(zhí)行完成后,會出現(xiàn) CPU core 空閑的情況。如果 task 數(shù)量設置為 CPU core 總數(shù)的 2~3 倍,那么一個task 執(zhí)行完畢后,CPU core 會立刻執(zhí)行下一個 task,降低了資源的浪費,同時提升了 Spark作業(yè)運行的效率。
Spark 作業(yè)并行度的設置如下所示:
總結
以上是生活随笔為你收集整理的Spark常规性能调优三:并行度调节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go变量地址值和指针的关系
- 下一篇: K8S常见错误、原因及处理方法