2017-11-13 5 views
0

Ich habe eine Anwendung auf AWS EMR-Spark ausgeführt. Hier ist der Job zum Senden eines Funkens: -AWS EMR Spark- Cloudwatch

Arguments : spark-submit --deploy-mode cluster --class com.amazon.JavaSparkPi s3://spark-config-test/SWALiveOrderModelSpark-1.0.assembly.jar s3://spark-config-test/2017-08-08 

So verwendet AWS YARN für die Ressourcenverwaltung. Ich hatte ein paar Zweifel, um diesen, während ich die Cloudwatch-Metriken beobachtet: -

1) Screenshot attached

Was zugeordnet ist Container bedeutet hier? Ich verwende 1 Master & 3 Slave/Executor-Knoten (alle 4 sind 8 Kerne CPU).

2) enter image description here

Ich änderte meine Anfrage an: -

spark-submit --deploy-mode cluster --executor-cores 4 --class com.amazon.JavaSparkPi s3://spark-config-test/SWALiveOrderModelSpark-1.0.assembly.jar s3://spark-config-test/2017-08-08 

Hier die Anzahl der Kerne läuft 3. Sollte es nicht sein 3 (Anzahl der Vollstrecker) * 4 (Anzahl der Kerne) = 12?

Antwort

0

1) Container, der hier zugeordnet wird, repräsentiert im Grunde die Anzahl der Funkenvollstrecker. Spark-Executor-Cores ähneln eher "Executor-Tasks", was bedeutet, dass Sie Ihre App so konfigurieren können, dass sie einen Executor pro physikalischer CPU ausführen und immer noch 3 Executor-Cores pro CPU haben (Think Hyper-Threading).

Was standardmäßig bei EMR passiert, wenn Sie nicht die Anzahl der Spark Executors angeben, ist, dass dynamische Zuweisung angenommen wird und Spark nur von YARN fragt, was es in Bezug auf Ressourcen benötigt. Versuchte Einstellung explizit die Anzahl der Executoren auf 10 und die zugeordneten Container ging bis 6 (maximale Partitionen von Daten). Außerdem können Sie unter dem Reiter "Anwendungsverlauf" eine detaillierte Ansicht der YARN/Spark-Executoren erhalten.

2) "Kerne" beziehen sich hier auf EMR-Kernknoten und sind nicht identisch mit Spark Executor-Kernen. Gleiches gilt für "Aufgabe", die sich in der Registerkarte Überwachung auf EMR-Aufgabenknoten bezieht. Das entspricht meinem Setup, da ich 3 EMR-Slave-Knoten habe.