Frage

Ich verwende oozie, um meinen Map-Reduce-Job auszuführen.Ich möchte die Ausgabedatei nach dem Datum erstellen.Es wird jedoch ein Datum als Zeichenfolge verwendet und am Ende gedruckt, anstatt ein Datum als Wert zu verwenden :

   /user/skataria/geooutput/$(date +"%m%d%Y%H%M%S")

Hier ist die Oozie-Eigenschaftendatei:

nameNode=hdfs://localhost:8020
jobTracker=localhost:8021
date=(date +"%m%d%Y%H%M%S")
oozie.wf.application.path=${nameNode}/services/advert/sid
inputDir=${nameNode}/user/${user.name}/geoinput/testgeo
outputDir=${nameNode}/user/${user.name}/geooutput/${date}

Irgendwie kann ich oozie nicht als Tag haben, weil mein Ruf unter 1500 liegt

War es hilfreich?

Lösung

Es sieht so aus, als ob Sie versuchen, einen Linux-Shell-Befehl (date +"%m%d%Y%H%M%S") in einer Java-Eigenschaftsdatei zu verwenden - das wird nicht aufgelöst.

Eine Arbeit herum, vorausgesetzt, dies ist Teil eines manuell eingereichten Workflow-Jobs (im Gegensatz zu einem Koordinatorjob) ist es, die Datumseigenschaft mit der Option "DEY= VALUE= VALUE zu liefern, und Linux Shell Back-Zitate anBeheben Sie die Ausgabe eines Befehls inline generasacodicetagpre.

Sie müssen sicherstellen, dass Ihre Version von Oozie die Option -D-Key= Value-Option unterstützt

Andere Tipps

Ja, ich bin damit einverstanden, dass die Shell-Option funktioniert.Aber das löst meinen Anwendungsfall nicht.Ich möchte meinen Map-Reduce-Job täglich ausführen und diesen durch Farbton planen.Das Ausgabeverzeichnis muss als Job-Eigenschaft für Oozie parametrisiert werden.

Übrigens finde ich das Oozie hat Ausdruckssprachfunktionen,

Leider ist die Funktion timestamp() gibt das aktuelle UTC-Datum und die aktuelle Uhrzeit im W3C-Format sekundengenau zurück (YYYY-MM-DDThh:mm:ss.sZ).also.: 1997-07-16T19:20:30.45Z und völlig unbrauchbar zum Erstellen eines Unterverzeichnisnamens in HDFS

Also für jetzt,

Ich habe einen Workaround.Ich benutze die Workflow-EL-Funktion wf:id() In workflow.xml

<property>
  <name>mapreduce.output.fileoutputformat.outputdir</name>
  <value>/user/sasubramanian/impressions/output/outpdir/${yyyy_mm_dd}/${wf:id()}</value>
</property>

Dies erstellt ein Ausgabeverzeichnis mit einem Unterverzeichnis als,

/user/foouser/subdir1/output/outpdir/0000006-130321100837625-oozie-oozi-W

BEACHTEN:Sie müssen dies im Workflow angeben.XML.Dies funktioniert nicht, wenn Sie es im Job angegeben haben.Eigenschaft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top