有没有办法用纯Spark 来监控Apache Spark的CPU利用率?
Ganglia似乎可以在外部做到这一点。
我想知道Spark内部是否有任何内容(例如,Spark向UI报告的信息或指标信息)可以像Linux顶级那样为您提供核心利用率。不是每个执行程序在特定时间使用了多少个核心(coreUsed),而是这些核心的充分利用。
答案 0 :(得分:3)
似乎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利用率相关的统计信息文件。
答案 1 :(得分:2)
考虑到 Ganglia 或其他外部监控工具/框架,您走在正确的轨道上。
Spark Scheduler 会跟踪任务/作业进度 ..但不会跟踪资源利用率。 spark执行器允许任务运行 - 并报告成功/失败 - 但也不会自我监控资源利用率。