当前位置: 首页 > 知识库问答 >
问题:

Spark Metrics:如何访问执行者和工作者数据?

沈良策
2023-03-14

注意:我在纱线上使用火花

我一直在尝试Spark中实现的公制。我启用了ConsoleSink和CsvSink,并为所有四个实例(驱动程序、主程序、执行器和工作程序)启用了JvmSource。然而,我只有驱动程序输出,在控制台和csv目标目录中没有工人/执行者/主数据。

看完这个问题后,我想知道在提交作业时,是否需要向执行者发送一些东西。

我的提交命令:<code>/bin/sark提交——类org.apache.spark.examples。SparkPi lib/spark-examples-1.50-hadoop2.6.0.jar 10

波纹管是我的度量属性文件:

# Enable JmxSink for all instances by class name
*.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink

# Enable ConsoleSink for all instances by class name
*.sink.console.class=org.apache.spark.metrics.sink.ConsoleSink

# Polling period for ConsoleSink
*.sink.console.period=10

*.sink.console.unit=seconds

#######################################
# worker instance overlap polling period
worker.sink.console.period=5

worker.sink.console.unit=seconds
#######################################

# Master instance overlap polling period
master.sink.console.period=15

master.sink.console.unit=seconds

# Enable CsvSink for all instances
*.sink.csv.class=org.apache.spark.metrics.sink.CsvSink
#driver.sink.csv.class=org.apache.spark.metrics.sink.CsvSink

# Polling period for CsvSink
*.sink.csv.period=10

*.sink.csv.unit=seconds

# Polling directory for CsvSink
*.sink.csv.directory=/opt/spark-1.5.0-bin-hadoop2.6/csvSink/

# Worker instance overlap polling period
worker.sink.csv.period=10

worker.sink.csv.unit=second

# Enable Slf4jSink for all instances by class name
#*.sink.slf4j.class=org.apache.spark.metrics.sink.Slf4jSink

# Polling period for Slf4JSink
#*.sink.slf4j.period=1

#*.sink.slf4j.unit=minutes


# Enable jvm source for instance master, worker, driver and executor
master.source.jvm.class=org.apache.spark.metrics.source.JvmSource

worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource

driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource

executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource

下面是Spark创建的csv文件列表。我期待着为Spark执行器(也是JVM)访问相同的数据。

app-20160812135008-0013.driver.BlockManager.disk.diskSpaceUsed_MB.csv
app-20160812135008-0013.driver.BlockManager.memory.maxMem_MB.csv
app-20160812135008-0013.driver.BlockManager.memory.memUsed_MB.csv
app-20160812135008-0013.driver.BlockManager.memory.remainingMem_MB.csv
app-20160812135008-0013.driver.jvm.heap.committed.csv
app-20160812135008-0013.driver.jvm.heap.init.csv
app-20160812135008-0013.driver.jvm.heap.max.csv
app-20160812135008-0013.driver.jvm.heap.usage.csv
app-20160812135008-0013.driver.jvm.heap.used.csv
app-20160812135008-0013.driver.jvm.non-heap.committed.csv
app-20160812135008-0013.driver.jvm.non-heap.init.csv
app-20160812135008-0013.driver.jvm.non-heap.max.csv
app-20160812135008-0013.driver.jvm.non-heap.usage.csv
app-20160812135008-0013.driver.jvm.non-heap.used.csv
app-20160812135008-0013.driver.jvm.pools.Code-Cache.committed.csv
app-20160812135008-0013.driver.jvm.pools.Code-Cache.init.csv
app-20160812135008-0013.driver.jvm.pools.Code-Cache.max.csv
app-20160812135008-0013.driver.jvm.pools.Code-Cache.usage.csv
app-20160812135008-0013.driver.jvm.pools.Code-Cache.used.csv
app-20160812135008-0013.driver.jvm.pools.Compressed-Class-Space.committed.csv
app-20160812135008-0013.driver.jvm.pools.Compressed-Class-Space.init.csv
app-20160812135008-0013.driver.jvm.pools.Compressed-Class-Space.max.csv
app-20160812135008-0013.driver.jvm.pools.Compressed-Class-Space.usage.csv
app-20160812135008-0013.driver.jvm.pools.Compressed-Class-Space.used.csv
app-20160812135008-0013.driver.jvm.pools.Metaspace.committed.csv
app-20160812135008-0013.driver.jvm.pools.Metaspace.init.csv
app-20160812135008-0013.driver.jvm.pools.Metaspace.max.csv
app-20160812135008-0013.driver.jvm.pools.Metaspace.usage.csv
app-20160812135008-0013.driver.jvm.pools.Metaspace.used.csv
app-20160812135008-0013.driver.jvm.pools.PS-Eden-Space.committed.csv
app-20160812135008-0013.driver.jvm.pools.PS-Eden-Space.init.csv
app-20160812135008-0013.driver.jvm.pools.PS-Eden-Space.max.csv
app-20160812135008-0013.driver.jvm.pools.PS-Eden-Space.usage.csv
app-20160812135008-0013.driver.jvm.pools.PS-Eden-Space.used.csv
app-20160812135008-0013.driver.jvm.pools.PS-Old-Gen.committed.csv
app-20160812135008-0013.driver.jvm.pools.PS-Old-Gen.init.csv
app-20160812135008-0013.driver.jvm.pools.PS-Old-Gen.max.csv
app-20160812135008-0013.driver.jvm.pools.PS-Old-Gen.usage.csv
app-20160812135008-0013.driver.jvm.pools.PS-Old-Gen.used.csv
app-20160812135008-0013.driver.jvm.pools.PS-Survivor-Space.committed.csv
app-20160812135008-0013.driver.jvm.pools.PS-Survivor-Space.init.csv
app-20160812135008-0013.driver.jvm.pools.PS-Survivor-Space.max.csv
app-20160812135008-0013.driver.jvm.pools.PS-Survivor-Space.usage.csv
app-20160812135008-0013.driver.jvm.pools.PS-Survivor-Space.used.csv
app-20160812135008-0013.driver.jvm.PS-MarkSweep.count.csv
app-20160812135008-0013.driver.jvm.PS-MarkSweep.time.csv
app-20160812135008-0013.driver.jvm.PS-Scavenge.count.csv
app-20160812135008-0013.driver.jvm.PS-Scavenge.time.csv
app-20160812135008-0013.driver.jvm.total.committed.csv
app-20160812135008-0013.driver.jvm.total.init.csv
app-20160812135008-0013.driver.jvm.total.max.csv
app-20160812135008-0013.driver.jvm.total.used.csv
DAGScheduler.job.activeJobs.csv
DAGScheduler.job.allJobs.csv
DAGScheduler.messageProcessingTime.csv
DAGScheduler.stage.failedStages.csv
DAGScheduler.stage.runningStages.csv
DAGScheduler.stage.waitingStages.csv

共有1个答案

樊烨烨
2023-03-14

由于您没有给出您尝试过的命令,我假设您没有传递metrics.properties.要传递metrics.propertis命令应该是

spark-submit <other parameters> --files metrics.properties 
--conf spark.metrics.conf=metrics.properties

注意指标。必须在--files中指定属性

 类似资料:
  • 我有一个2节点的Spark集群,每个节点有4个核心。 null 根据文档: Spark将为集群的每个部分运行一个任务。通常情况下,集群中的每个CPU需要2-4个片。 我将slices设置为8,这意味着工作集将被划分为集群上的8个任务,反过来每个工作节点得到4个任务(每个核心1:1) 我假设理想情况下,我们应该调优,使其与每个节点(在同构集群中)中的核数相对应,以便每个核获得自己的执行器和任务(1:

  • 在《信号灯小书》一书中,第71页,存在以下问题: 写一个读者-作者问题的解决方案,优先考虑作者。也就是说,一旦写入程序到达,在所有写入程序离开系统之前,不应允许任何读卡器进入。 我得出了一个解决方案,但它与书中给出的有点不同。 共享变量: 表示初始化为1的信号量,而在本书中的定义如下: 读卡器逻辑: 编写器逻辑: 共享变量: 读卡器逻辑: 编写器逻辑: 1) 在阅读器逻辑中,在我的解决方案中,紧跟

  • java.util.concurrent.Executor接口是一个支持启动新任务的简单接口。 ExecutorService方法 Sr.No. 方法和描述 1 void execute(Runnable command) 在将来的某个时间执行给定的命令。 例子 (Example) 以下TestThread程序显示了基于线程的环境中Executor接口的使用。 import java.util.c

  • 我对访问者模式和泛型有问题。我有一个抽象班,他们的孩子要去看望。查看此代码: 因此,我的想法是:我有一些类层次结构(例如,是的子类)。我有一些通用的访问者界面来访问这个层次结构。现在在这个层次结构的中间是元素类,它是抽象的,有自己的子类。 现在,我希望元素接受其子类的所有访问者,这就是为什么我写这行: 但现在我收到错误: 类型<代码>访问者中的方法访问(<代码>捕获#1-of?扩展元素 我明白了?

  • 问题内容: 我目前正在尝试在Antlr4访问者的帮助下开发JavaScript编译器。我已经用Java实现了这一点,但无法弄清楚如何用JavaScript做到这一点。也许有人可以回答我几个问题? 1:在Java中,有一个Visitor.visit函数。如果我说得对,那么使用Javascript是不可能的。有没有解决的办法? 2:我的Javascript访问者获得了所有生成的访问函数,但是当我使用c