2016-05-20 9 views
2

Ich arbeite an einer Datengröße von 400 MB, hat das Skript 5 verschiedene Abschnitt und hat 5 Speicherbefehle, wenn ich nur einen Speicherbefehl auf einmal alle anderen kommentieren Die Schweine-Skripts funktionieren großartig. Wenn jedoch alle 5 Speicherbefehle aktiviert sind, bleibt der Job-Browser (Farbton) in keiner bestimmten Phase hängen, und dann wiederholt er einfach einen Job ohne Fortschritt. Es gibt keinen Fehler, und die Protokolle haben auch keinen Fehler und keine Warnung.Pig-Programme nur in einem Stadium ohne Grund stecken

Das Problem, das ich erkenne, kann aufgrund von Umweltproblemen sein, da das Skript auch mit dem Attribut -M funktionierte, aber das andere Mal fehlschlug.

Antwort

0

Wenn jede STORE-Daten vom vorherigen STORE abhängig sind, können Sie nach jedem STORE den Befehl exec verwenden. Dies stellt sicher, dass Ihre STORE-Befehle vollständig vor dem nächsten Befehlssatz/STORE ausgeführt werden.

A = ... 
STORE A; 
exec; 
B = FOREACH A GENERATE ... 
0

Der Fehler ist aufgrund der Ressourcenzuordnungsrichtlinie von Garn verwendet. Wenn der Datenträger voll ist, wird der Knoten fehlerhaft und der Arbeitsspeicher wird reduziert. Momentan weist der Garnplaner (Fair Scheduler) den gesamten verfügbaren Speicher allen verfügbaren Jobs zu, und es gibt keine Überprüfung auf Deadlocks, was bei mir der Fall ist. Die Lösung ist die Änderung der Planung von Garn, mit Kapazitätsplanung.