2017-07-23 1 views
1

Ich weiß, Hadoop/Spark-Framework erkennt fehlgeschlagene oder langsame Maschinen und führt die gleichen Aufgaben auf verschiedenen Maschinen. Wie wird (auf welcher Basis) Rahmen die langsam laufenden Maschinen identifiziert. Gibt es irgendeine Art von Statistiken für das Framework zu entscheiden?Spekulative Ausführung Mapreduce/Spark

Kann jemand Licht hier beleuchten?

Antwort

1

Das MapReduce-Modell dient dazu, Jobs in Tasks zu zerlegen und die Tasks parallel zu auszuführen, damit die Ausführungszeit für den gesamten Job kleiner wird, als wenn die Tasks sequenziell ausgeführt würden.

yarn.app.mapreduce.am.job.task.estimator.class - Wenn MapReduce Modell Mittagessen einen neuen Job, diese Eigenschaft und Implementierung wird verwendet, um die Task-Abschlusszeit zur Laufzeit zu schätzen. Die geschätzte Bearbeitungszeit für eine Aufgabe sollte weniger als eine Minute betragen. Wenn eine Task über diese geschätzte Zeit hinaus ausgeführt wird, kann sie als langsam laufende Task gekennzeichnet werden.

yarn.app.mapreduce.am.job.speculator.class - Diese Eigenschaft wird verwendet , um die spekulative Ausführungsrichtlinie zu implementieren.

1

Spark.speculation Standardwert ist false Wenn Sie auf "true" festlegen, führt spekulative Ausführung von Aufgaben. Das bedeutet, wenn eine oder mehrere Aufgaben in einer Phase langsam ausgeführt werden, werden sie erneut gestartet.

enter image description here

http://spark.apache.org/docs/latest/configuration.html

Sie können diese Fahnen zu Ihrem hinzufügen Funken einreichen, so dass sie unter --conf zB vorbei:

spark-submit \ 
--conf "spark.speculation=true" \ 
--conf "spark.speculation.multiplier=5" \ 
--conf "spark.speculation.quantile=0.90" \ 
--class "org.asyncified.myClass" "path/to/Vaquarkhanjar.jar" 

Hinweis: Spark-Treiber ist ein verbringen viel Zeit in der Spekulation, wenn eine große Anzahl von Aufgaben verwaltet wird. Aktivieren Sie es nur bei Bedarf.