Spark 任务瓶颈分析

我先说说我的机器,一台 master,性能肯定够。一台 slave 节点(配置为 6 核 10g内存 单块硬盘)

master 节点只负责管理,不参与任何运算。然后发现了一个很奇怪的现象,在 Logistic Regression 中有一个 stage,随着 executor core 的核数增加,每一个 task 的平均运行时间增长,请问这是怎么回事。(这里只讨论每一个 task 的运行时间长短,而不是整个 stage 的)

每一个 executor 的配置为 1core 1g 内存。数据的文件大小都是一样的,而且有 7G,所以肯定不会存在文件太小并行度太低的问题。

该 Stage 的 DAG 图

image.png

1 core 1 g
image.png

2 core 2 g
image.png

3 core 3g

image.png

4 core 4g
image.png

5 core 5g
image.png

如上面的图,随着 executor 的增加,每个 task 的平均运行时间逐渐增加,我猜测是磁盘的 IO 引起,那么我该如何判断某个 stage 的瓶颈是不是由 IO 引起的呢,因为前面几个 stage 中,每个 task 的运行时间长短不会随着 executor 的增加而变慢。

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进