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

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

  • 问题内容: angularJS如何使用Web Worker在后台运行进程?我有什么模式可以遵循吗? 当前,我正在使用在单独的Web worker中具有模型的服务。该服务实现的方法如下: 在实现中,此方法将带有数据的消息发送给工作程序。这使我可以抽象出它是在单独的线程中执行的事实,并且我还可以提供一种对服务器甚至在同一线程中执行此操作的服务器进行查询的实现。 由于我是Java语言的新手,我只是在回收

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