gpt4 book ai didi

performance - 我在哪里可以找到 Spark 中的操作成本?

转载 作者:行者123 更新时间:2023-12-01 23:41:51 26 4
gpt4 key购买 nike

假设我有两个大小为 M1 和 M2 的 RDD,它们平均分布在 p 个分区中。

我很想知道(理论上/大约)操作过滤器、映射、leftOuterJoin、++、reduceByKey 等的成本是多少。

谢谢您的帮助。

最佳答案

要衡量执行成本,了解 spark 执行的方式很重要。

简而言之,当您在 RDD 上执行一组转换时,spark 将创建一个执行计划(又名 DAG),并将它们以 stages 的形式组合在一起。一旦你触发一个 Action 就会执行。

像 map/filter/flatMap 这样的操作被组合在一起形成一个阶段,因为它们不会引起 shuffle,而像 join、reduceByKey 这样的操作将创建更多的阶段,因为它们涉及要跨执行器移动的数据。 Spark 执行 action作为 stages 的序列(如果它们彼此独立,则顺序或并行执行)。而且,每个stage被执行为多个并行 tasks其中一次运行的任务数量取决于 RDD 的分区和可用资源。

衡量运营成本的最佳方法是查看 SparkUI。打开 spark UI(如果您在本地模式下运行,默认情况下它将位于 localhost:4040)。您会在页面顶部找到几个选项卡,单击其中任何一个选项卡后,您将被定向到显示相应指标的页面。

这是我用来衡量性能的方法:

  • Job 的成本=> 执行其所有成本的总和 stages .
  • Stage 的成本=> 执行每个并行的平均成本 tasks在舞台上。
  • Task 的成本=> 默认情况下,一个任务消耗一个 CPU 内核。消耗的内存在 UI 中给出,这取决于分区的大小。

  • stage 中为每个转换导出度量真的很困难。因为 Spark 将这些转换组合在一起并在 RDD 的一个分区上一起执行。

    关于performance - 我在哪里可以找到 Spark 中的操作成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37092086/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com