【问题标题】:Spark - Shuffle Read Blocked TimeSpark - 随机读取阻塞时间
【发布时间】:2016-09-24 21:40:17
【问题描述】:

最近我一直在调整一些大型、shuffle 繁重的工作的性能。查看 spark UI,我注意到附加指标部分下有一个名为“Shuffle Read Blocked Time”的选项。

对于大量任务,这种“随机读取阻塞时间”似乎占任务持续时间的 50% 以上。

虽然我可以凭直觉知道这意味着什么,但我找不到任何文档来解释它的实际含义。不用说,我也找不到任何有关缓解策略的资源。

谁能提供一些关于如何减少随机读取阻塞时间的见解?

【问题讨论】:

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


    【解决方案1】:

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

    如果您不知道您正在尝试读取什么数据或您正在从哪种远程机器上读取数据,就很难为缓解它的策略提供输入。但是,请考虑以下事项:

    1. 检查您与从中读取数据的远程计算机的连接。
    2. 检查您的代码/作业,确保您只读取完成作业绝对需要读取的数据。
    3. 在某些情况下,您可以考虑将作业拆分为多个并行运行的作业,只要它们彼此独立即可。
    4. 也许您可以升级您的集群以拥有更多节点,这样您就可以将工作负载拆分得更细化,从而缩短总体等待时间。

    关于指标,本文档应该对它们有所了解:https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-webui-StagePage.html

    最后,我确实发现很难找到有关 Shuffle Read Blocked Time 的信息,但如果你在 google 搜索中加上“Shuffle Read Blocked Time”这样的引号,你会发现一些不错的结果。

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 2020-05-22
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多