2015-05-12 13 views
5

Wenn während einer einfachen Gruppe von Skript in Schwein für große Terabytes von Daten, das Skript bei etwa 70% stecken geblieben, dann was kann getan werden, um das Problem zu diagnostizieren?Wie kann ich ein Schwein Skript debuggen

Antwort

9

Es gibt mehrere Methoden zum Debuggen eines Schweineskriptes. Eine einfache Methode ist die schrittweise Ausführung einer Relation und die anschließende Überprüfung des Ergebnisses. Diese Befehle sind nützlich, um ein Schwein-Skript zu debuggen.

DUMP - Verwenden Sie den DUMP-Operator zum Ausführen (Ausführen) von Pig Latin-Anweisungen und Anzeigen der Ergebnisse auf Ihrem Bildschirm.

ILLUSTRATE - Verwenden Sie den ILLUSTRATE-Operator, um zu überprüfen, wie Daten durch eine Sequenz von Pig Latin-Anweisungen umgewandelt werden. ILLUSTRATE ermöglicht es Ihnen, Ihre Programme auf kleinen Datensätzen zu testen und schnellere Durchlaufzeiten zu erhalten.

EXPLAIN - Verwenden Sie den Operator EXPLAIN, um die logischen, physischen und Map-Reduce-Ausführungspläne zu überprüfen, die zum Berechnen der angegebenen Beziehung verwendet werden.

DESCRIBE - Verwenden Sie den DESCRIBE-Operator, um das Schema einer Beziehung anzuzeigen. Sie können sowohl äußere Beziehungen als auch Beziehungen anzeigen, die in einer verschachtelten FOREACH-Anweisung definiert sind.

Weitere Informationen zu diesen Befehlen finden Sie unter link. Bitte beachten Sie auch developing and testing a pig script. um mehr Details zu erfahren.

Wenn Sie während der Ausführung ganze Skript debuggen wollen, dann müssen Sie Code unten an Anfang des Skripts

-- set the debug mode on 
SET debug 'on' 
-- set a job name of your job. 
SET job.name 'my job' 

Diese schreiben kann Ihr Skript in den Debug-Modus laufen zu lassen. Modus-Detail auf über Befehl ist auf dieser link

0

Wenn Sie sagen, das Skript ist bei 70% stecken, ich nehme an, Sie meinen, der MR-Auftrag ist 70% abgeschlossen.

Am besten schauen Sie sich MR- und YARN-Protokolle (und ggf. HDFS-Protokolle) an, um mehr Informationen darüber zu erhalten, was MR/YARN macht. Protokolle können normalerweise unter /var/log/hadoop-mapreduce und /var/log/hadoop-hdfs in von Cloudera Manager verwalteten Clustern gefunden werden. Möglicherweise müssen Sie Protokolle von mehreren Knoten im Cluster prüfen, auf denen YARN NodeManager ausgeführt werden.

Wenn Ihr Skript mit einem Schwein Problem (dh Ausgabe in Pig Code, nicht MR/HDFS-Code) geklebt wird, ist es sinnvoll, die log4j Protokollierungsstufe in Pig zu erhöhen: Schwein -d DEBUG ist der Befehl Zeilenoption, um die Protokollierungsstufe beispielsweise auf DEBUG zu setzen.

Verwandte Themen