2016-05-26 8 views
6

In letzter Zeit habe ich die Leistung einiger großer, shuffle schwerer Jobs optimiert. Mit Blick auf die Spark UI habe ich eine Option namens "Shuffle Read Blocked Time" im Abschnitt mit den zusätzlichen Metriken gefunden.Spark - Shuffle Read Blocked Time

Diese "Shuffle Read Blocked Time" scheint für einen großen Teil der Aufgaben mehr als 50% der Taskdauer zu betragen.

Während ich einige Möglichkeiten für das, was dies bedeutet, intuitiv erfassen kann, kann ich keine Dokumentation finden, die erklärt, was es tatsächlich darstellt. Unnötig zu sagen, dass ich auch keine Ressourcen zu Mitigationsstrategien finden konnte.

Kann mir jemand einen Einblick geben, wie ich Shuffle Read Blocked Time reduzieren kann?

Antwort

1

"Shuffle Read Blocked Time" ist die Zeit, in der Tasks blockiert waren, während sie darauf warteten, dass Shuffle-Daten von Remote-Computern gelesen wurden. Die genaue Metrik, von der es gespeist wird, ist shuffleReadMetrics.fetchWaitTime.

Es ist schwierig, eine Strategie zur Minderung anzugeben, ohne zu wissen, welche Daten Sie gerade lesen oder welche Art von Remote-Computern Sie gerade lesen. Berücksichtigen Sie jedoch Folgendes:

  1. Überprüfen Sie Ihre Verbindung zu den Remote-Computern, von denen Sie Daten lesen.
  2. Überprüfen Sie Ihren Code/Ihre Jobs, um sicherzustellen, dass Sie nur Daten lesen, die Sie unbedingt lesen müssen, um Ihren Job zu beenden.
  3. In einigen Fällen können Sie Ihren Job in mehrere Jobs aufteilen, die parallel ausgeführt werden, sofern sie unabhängig voneinander sind.
  4. Vielleicht könnten Sie Ihren Cluster aktualisieren, um mehr Knoten zu haben, so dass Sie die Arbeitslast granularer aufteilen können und somit insgesamt eine geringere Wartezeit haben.

In Bezug auf die Metriken, sollte diese Dokumentation etwas Licht auf sie werfen: https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-webui-StagePage.html

Schließlich ich habe auch Informationen, die es schwierig finden, zu finden auf Shuffle lesen Blockierte Zeit, aber wenn Sie in Anführungszeichen wie: "Shuffle Read Blocked Time" in einer Google-Suche finden Sie einige anständige Ergebnisse.