Spark CPU利用率监控

时间:2016-03-04 16:35:10

标签: apache-spark monitoring cpu-usage core

有没有办法用纯Spark 来监控Apache Spark的CPU利用率?

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

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

2 个答案:

答案 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执行器允许任务运行 - 并报告成功/失败 - 但也不会自我监控资源利用率。