Spark - Shuffle Read Blocked Time

时间:2016-05-26 18:22:10

标签: apache-spark pyspark apache-spark-sql

最近,我一直在调整一些大型的重型工作的表现。看着火花UI,我注意到一个名为" Shuffle Read Blocked Time"在附加指标部分下。

此"随机读取阻止时间"对于大量任务来说,似乎占任务持续时间的50%以上。

虽然我可以直觉了解这意味着什么,但我找不到任何解释它实际代表内容的文档。毋庸置疑,我也无法找到缓解策略的任何资源。

任何人都可以提供一些有关如何减少随机读取阻止时间的见解吗?

1 个答案:

答案 0 :(得分:2)

“随机读取阻止时间”是指任务停止等待从远程计算机读取随机数据的时间。它所提供的确切指标是shuffleReadMetrics.fetchWaitTime。

很难在没有真正了解您尝试阅读的数据或您正在阅读的远程机器类型的情况下为策略提供输入以进行缓解。但是,请考虑以下事项:

  1. 检查与正在读取数据的远程计算机的连接。
  2. 检查您的代码/工作,确保您只读取您完成工作时绝对需要阅读的数据。
  3. 在某些情况下,您可以考虑将作业拆分为多个并行运行的作业,只要它们彼此独立即可。
  4. 也许您可以升级您的群集以拥有更多节点,这样您就可以将工作负载拆分为更精细,从而缩短整体等待时间。
  5. 关于指标,本文档应该对它们有所了解:https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-webui-StagePage.html

    最后,我也发现很难找到关于随机读取阻止时间的信息,但是如果你在谷歌搜索中输入如“Shuffle Read Blocked Time”这样的引号,你会发现一些不错的结果。