有没有办法用 pure Spark 监控 Apache Spark 的 CPU 利用率?
Ganglia 似乎可以从外部做到这一点。
我想知道 Spark 内部是否有任何东西(例如,Spark 向 UI 报告的信息或指标信息)可以像 Linux top 那样为您提供核心利用率。不是每个执行程序在特定时间使用了多少个核心 (coreUsed),而是这些核心的充分利用程度。
最佳答案
好像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)
再次构建 Spark 。当您通过执行程序和驱动程序的指标报告 jvm 信息时,您将看到另外三个与 CPU 利用率相关的统计文件。
关于apache-spark - Spark CPU 利用率监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35801271/