【问题标题】:How do I get executor related info from a sparkcontext?如何从 sparkcontext 获取执行者相关信息?
【发布时间】:2020-02-19 08:15:11
【问题描述】:

Spark 版本是 2.3.3。 我正在尝试查找总/已用内存以及活动/总任务和其他执行程序特定信息。

在我的驱动程序中:-

sc.statusTracker.getExecutorInfos.foreach{
      x=>
        x.numRunningTasks()
    }

我可以得到正在运行的任务的数量。但我也需要这些执行程序的总/已用内存。我在 Yarn 集群上运行了数千个作业。我们的想法是获取实际使用量与分配的内存,以便进一步优化这些。

更新: http://:8088/proxy//api/v1/applications//executors 提供了 UI 上可用的所有信息。计算期间使用的内存除外。这是我主要寻找的。​​p>

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    查看 sc。getExecutorMemoryStatus

    它从slave返回一个映射到可用于缓存的最大内存和可用于缓存的剩余内存。

    sc.getExecutorMemoryStatus.foreach {
      m => {
        println(s"Slave= ${m._1}")
        println(s"Max Memory Available= ${m._2._1}")
        println(s"Remaining Memory Available= ${m._2._2}")
      }
    }
    

    【讨论】:

    • 这只是用于缓存的内存使用。不是实际的执行程序内存使用情况。我正在尝试查找容器的已用内存。计算/缓存或其他。
    【解决方案2】:

    所有这些信息都可以在 Spark UI 或 Spark History 服务器上看到。

    Spark 中有 executors 选项卡,提供有关执行器和内存分配、执行器总数、任务的信息。

    如果通过 YARN 提交,您也可以通过 YARN 查看日志,它会显示与分配给执行程序的内存相关的详细信息。

    【讨论】:

    • 很抱歉,如果我的问题不够清楚,我的申请中需要这些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多