2016-05-27 2 views
1

Ich führe einige Anfragen auf Funken mit nur einem Knoten und dann mit 4 Knoten. Und im Funken: 4040 UI sehe ich etwas, das ich nicht verstehe. Zum Beispiel nach dem Ausführen einer Abfrage mit 4 Knoten und überprüfen Sie die Ergebnisse in der Spark UI, in der Registerkarte "Eingabe" erscheint 2,8GB, so Funke lesen 2,8GB von Hadoop.Warum ist der Eingabewert auf Spark UI geringer, wenn wir mehr Knoten verwenden und der Shuffle-Wert gleich bleibt?

Die gleiche Abfrage auf Hadoop mit nur einem Knoten im lokalen Modus erscheint 7,3 GB, der Funke gelesen 7,3 GB von Hadoop. Aber dieser Wert sollte nicht gleich sein? Zum Beispiel bleibt der Wert von shuffle + - gleich in einem Knoten vs. 4. Warum bleibt der Eingabewert nicht gleich? Die gleiche Menge an Daten muss von den hdfs gelesen werden, also verstehe ich nicht. Wissen Sie?

Einzelknoten:

enter image description here

Unterhalb derselben Abfrage auf Mehrfachknoten, wie Sie Eingabe sehen kann, ist weniger aber die Shuffle bleibt + - icual, weißt du, warum? enter image description here

+0

Sie müssen beschreibender sein mit dem, was Sie fragen. Ich kann Dinge nicht annehmen und antworten. –

+0

Ich frage, wenn ich die gleiche Abfrage mit 1 Arbeiter ausführen, bekomme ich für Beispiel in Eingabe 7GB. Wenn ich dieselbe Abfrage mit 3 Workers ausführe, bekomme ich 2,5GB auf der Input-Registerkarte. Aber die Shuffle bleibt + - das gleiche in der Abfrage Ausführung entweder ich 1 oder 3 Arbeiter verwenden. Und ich verstehe nicht, warum der Shuffle icual ist und der Input unterschiedlich bleibt. – codin

+0

Können Sie Schnappschüsse anbringen, über welchen Unterschied Sie sprechen? –

Antwort

1

Eingabe ist die Größe der Daten, die Ihr Funkenauftrag aufnimmt. Dies können beispielsweise Daten sein, die jede Map-Aufgabe verwendet, die Sie definiert haben.

Shuffling bedeutet die Neuzuweisung von Daten zwischen mehreren Spark-Stufen. "Shuffle Write" ist die Summe aller geschriebenen serialisierten Daten aller Executoren vor der Übertragung (normalerweise am Ende einer Stufe) und "Shuffle Read" bedeutet die Summe der gelesenen serialisierten Daten aller Executoren zu Beginn einer Stufe.

+0

Danke für Ihre Hilfe. Aber so sollte die Eingabe nicht immer icual sein, unabhängig von der Anzahl der Maschinen, die für die Verarbeitung der Anfrage wie shuffle verwendet werden? – codin

+0

Es sollte sein, aber es gibt viele Bugs bereits in Abhängigkeit von Eingabedaten in SPARK ältere Version geloggt, stellen Sie sicher, dass Sie auf der neuesten Version sind. –

1

Ich nehme an, Sie sprechen über Eingabe-Registerkarte in Jobs. Es könnte ein kumulativer Speicher sein. Bitte überprüfen Sie auch die Eingabe in der Executor-Registerkarte. Wie in 4 Knoten wird es mehr Executor haben, die Daten werden verteilt.

+0

Hallo, danke für deine Antwort. Ja, ich spreche über die Eingabe-Registerkarte in Jobs. In der Executor-Registerkarte habe ich jedem Worker einige Eingaben zugeordnet. Aber diese Summe der Eingänge aller Arbeiter gibt 3GB. Mit einem Arbeiter im lokalen Modus habe ich 7GB. – codin

Verwandte Themen