2016-08-12 2 views
3

Примечание: Я использую искру на ПРЯЖАХSpark Metrics: как получить доступ к данным исполнителя и работника?

Я пытался из Metric System реализованных в Спарке. Я включил ConsoleSink и CsvSink и включил JvmSource для всех четырех экземпляров (драйвер, мастер, исполнитель, рабочий). Однако у меня есть только выходные данные драйвера, а также данные рабочего/исполнительного/основного в консоли и целевой каталог csv.

После того, как я прочитал this question, мне интересно, нужно ли мне отправлять что-то исполнителям при отправке задания.

Моя подать команды: ./bin/spark-submit --class org.apache.spark.examples.SparkPi lib/spark-examples-1.5.0-hadoop2.6.0.jar 10

Белье мой metric.properties ФАЙЛА:

# 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 

А вот список из 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 

ответ

3

Поскольку вы не дали команду, которую вы пытались, я предполагаю, что вы не проходите metrics.properties. Чтобы передать metrics.propertis команда должна быть

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

Примечание metrics.properties должен быть указан в --files & --conf, то --files передаст metrics.properties файл в исполнителях. Поскольку вы можете видеть вывод на драйвере, а не на исполнителях, я думаю, что вы не указали параметр --files.

+0

Интересно, если у меня нет файла metric.properties на исполнителе, даже с помощью переключателя '--files' не выполняется трюк. Я думаю, что это связано с «ошибкой», когда люди посылают «большой банке» исполнителям, содержащий все необходимые файлы сразу. Итак, теперь он работает для исполнителей, когда у меня есть файл 'metric.properties' для каждого из них. Мне даже не нужно указывать какой-либо переключатель, т. Е. './bin/spark-submit -class org.apache.spark.examples.SparkPi lib/spark-examples-1.5.0-hadoop2.6.0.jar 10' будет работа хорошо. Любая идея для метрики мастера и рабочего? – Bacon

Смежные вопросы