2016-06-04 10 views
2

Ich versuche den quickstart von hier: http://datafu.incubator.apache.org/docs/datafu/getting-started.html Ich habe fast alles versucht, aber ich bin mir sicher, dass es meine Schuld irgendwo sein muss. Ich habe bereits versucht:apache PIG mit datafu: Kann UDF nicht lösen

  • Export PIG_HOME, CLASSPATH, PIG_CLASSPATH
  • Schwein beginnend mit -cpdatafu-Schwein-Inkubations-1.3.0.jar
  • Registrierung datafu-Schwein-Inkubations-1.3.0.jar lokal und in hdfs => beide erfolgreich (zumindest kein Fehler gezeigt) nichts
  • half

Der Versuch, diese auf Schwein:

register datafu-pig-incubating-1.3.0.jar 
DEFINE Median datafu.pig.stats.StreamingMedian(); 
data = load '/user/hduser/numbers.txt' using PigStorage() as (val:int); 
data2 = FOREACH (GROUP data ALL) GENERATE Median(data); 

oder direkt

data2 = FOREACH (GROUP data ALL) GENERATE datafu.pig.stats.StreamingMedian(data); 

ich diese Namen-resolve Fehler:

2016-06-04 17:22:22,734 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not resolve datafu.pig.stats.StreamingMedian using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.] Details at logfile: /home/hadoop/pig_1465053680252.log

Als ich den datafu-Schwein-Inkubations-1.3.0.jar schauen hinein OK sieht, alles an seinem Platz. Ich habe auch einige Bag-Funktionen ausprobiert, der selbe Fehler dann. Ich denke, es ist eine Art Noob-Fehler, den ich einfach nicht sehe (da ich keine spezifischen Antworten für Datafu in SO oder Google gefunden habe), also bedanke mich im Voraus dafür, etwas Licht in diese Sache gebracht zu haben.

+1

Bitte bedenken Sie, dass Sie den Titel und den Text Ihrer Frage bearbeiten können. Versuchen Sie, die Dinge zu vereinfachen – Trix

+0

Korrigiert die Formatierung jetzt, sorry für das –

+0

Nur zur Bestätigung: Wenn Sie grundlegende Schweine-Funktionen (wie SUM) verwenden, funktioniert alles, und wenn Sie eine Datafu-Funktion verwenden nichts funktioniert? –

Antwort

0

Pig Skript ist richtig, das einzige, was könnte brechen, dass während der Registrierung Datafu gab es einige Klassenabhängigkeiten, die nicht erfüllt wurden.

Versuchen Sie lokal zu laufen (Pig -x local) und sehen Sie sich ein detailliertes Protokoll an.

Überprüfen Sie auch die Version von Schwein - es sollte neuer als 0.14.0 sein.

+0

Nein, das alles hat nicht geholfen, es ist Schwein 0.15.0 und die Logdatei wiederholt sich einfach: Konnte org.apache.datafu.pig.stats.StreamingMedian nicht mit imports: [, java.lang., Org.apache.pig. builtin., org.apache.pig.impl.builtin.] Egal, welchen Klassenpfad ich verwende (habe ich mit und ohne org.apache.pig oder org.apache probiert). Aber ich brauche diese Funktion nicht mehr, da ich sie bereits in Hive lösen könnte (was auch ein wenig erinnerungsfreundlicher zu sein scheint). Danke trotzdem für die Betreuung :-) –

+0

ok, habe ich mit Schwein 0,15 verifiziert und es funktioniert für mich. Nur aus Neugier - können Sie mit -x local laufen und überprüfen Sie die Ausgabe von Logfile. – rrydziu

+0

Danke, das Logfile erwähnt die gleichen Fehler (nur mit vollem StackTrace). Aber das ist nicht meine Schweineinstallation (und nicht eine vollständige Hortonworks), so kann ich nicht vollständig sehen, wie die Bibliothekspfade eingerichtet sind. Ich bin mir ziemlich sicher, dass das funktionieren würde, wenn ich das Schwein frisch einrichten würde. Aber da ich es nur für eine Hausarbeit brauchte, überlasse ich es wie es ist :-) –