Spark CPU 利用率监控

问题描述 投票:0回答:2

有没有办法使用 pure Spark 监控 Apache Spark 的 CPU 利用率?

Ganglia 似乎可以从外部做到这一点。

我想知道 Spark 内部是否有任何内容(例如 Spark 向 UI 报告的信息或指标信息)可以为您提供像 Linux top 那样的核心利用率。不是每个执行器在某个时间使用了多少个核心 (coreUsed),而是这些核心的利用率如何。

apache-spark monitoring cpu-usage
2个回答
4
投票

org.wisdom-framework 似乎可以提供 CPU 利用率信息,并且很容易添加到 Spark 中。看看这个:https://github.com/wisdom-framework/wisdom/blob/master/extensions/wisdom-monitor/src/main/java/org/wisdom/monitor/extensions/dashboard/CpuGaugeSet.java

这就是我所做的:

在./core/pom.xml中的依赖部分末尾添加以下信息:

 <dependency> 
  <groupId>org.wisdom-framework</groupId> 
  <artifactId>wisdom-monitor</artifactId> 
 </dependency>

并将它们添加到 ./pom.xml 中的依赖项部分的末尾:

  <dependency> 
   <groupId>org.wisdom-framework</groupId> 
   <artifactId>wisdom-monitor</artifactId> 
   <version>0.9.1</version> 
 </dependency>

在 org/apache/spark/metrics/source/JvmSource.scala 中注册 cpuGaugeSet

 import org.wisdom.monitor.extensions.dashboard.CpuGaugeSet
 metricRegistry.registerAll(new CpuGaugeSet)

再次激发火花。当您通过执行程序和驱动程序的指标报告 jvm 信息时,您将看到另外三个与 CPU 利用率相关的统计文件。


3
投票

考虑使用 Ganglia 或其他外部监控工具/框架,您的方向是正确的。

Spark Scheduler 跟踪任务/作业进度 .. 但不跟踪资源利用率。 Spark 执行器允许任务运行 - 并报告成功/失败 - 但也不自我监控资源利用率。

© www.soinside.com 2019 - 2024. All rights reserved.