2012-03-28 9 views

Antwort

17

du in ein paar Möglichkeiten tun können:

  • die Anzahl der Reduzierungen für alle Pig opeations einzustellen, können Sie die default_parallel Eigenschaft nutzen können - aber jeder einzelne Schritt bedeutet eine einzige Minderer verwenden, abnehm Durchsatz:

    set default_parallel 1;

  • vor dem Aufruf von Speicher, wenn eine der Operationen auszuführen ist (COGROUP, Kreuz, DISTINCT, GROUP, JOIN (innere), JOIN (äußere) und ORDER BY), dann du c eine Verwendung der PARALLEL 1 Schlüsselwort, um die Verwendung eines einzigen Minderer zu bezeichnen diesen Befehl auszuführen:

    GROUP a BY grp PARALLEL 1;

Pig Cookbook - Parallel Features Für weitere Informationen siehe

+0

Tolles Zeug, Chris, danke! – JasonA

+0

Ich denke nicht, dass dies ideal ist, da Sie mit zu wenigen Untersetzern bei großen Ausgabedaten einen Speicherfehler bekommen könnten. – FreeTymeKiyan

15

Sie können auch alle verschmelzen Hadoop des getmerge Befehl Teil- * Dateien. Dies ist nur möglich, wenn Sie Ihre Pig-Skripte aus der Pig-Shell (und nicht aus Java) ausführen.

Dies ist ein Vorteil gegenüber der vorgeschlagenen Lösung: Da Sie immer noch mehrere Reduzierstücke verwenden können, um Ihre Daten zu verarbeiten, kann Ihr Auftrag schneller ausgeführt werden, insbesondere wenn jeder Reduzierer wenige Daten ausgibt.

grunt> fs -getmerge <Pig output file> <local file> 
Verwandte Themen