2012-12-19 7 views
9

Vom Oozie CLI möchte ich so etwas wie dies zu tun:Kann ich einen Oozie-Job mit mehreren Konfigurationsdateien einreichen?

oozie job -oozie http://host:port/oozie -config jobConfig.properties, baseConfig.properties -submit 

ich viele verschiedene Jobs habe ich renne, wo ein Teil der .properties-Datei identisch ist. Ich wäre in der Lage, diesen doppelten Teil in eine einzige Datei baseConfig.properties zu verschieben und diese mit dem jobspezifischen Teil zu kombinieren, wenn ich den Job übergebe.

Antwort

8

Wenn die Anzahl der überschriebenen Eigenschaften klein ist, können Sie einfach auf die Basiskonfigurationsdatei verweisen und dann die -Dprop1=value-Notation für jede Eigenschaft verwenden, die Sie anpassen möchten.

Ansonsten denke ich, Sie zwei (möglicherweise drei) Alternativen haben (wie Sie nicht mehrere Konfigurationsoptionen auf den aktuellen Oozie Client passieren kann):

  1. Erstellen Sie ein Skript, das verkettet die Basis und arbeitsplatzspezifischen Eigenschaftsdateien zusammen, und der Lauf Oozie mit dem Namen der fusionierten Datei
  2. die Quelle von OozieCLI als Ausgangspunkt verwendet, schreiben Sie eine Erweiterung Klasse, die einen CSV-Wert für die -config Option umgehen kann, oder kann mehrere -config Argument Instanzen
  3. Griff
  4. Können Sie? Verschieben Sie die allgemeinen Attribute für jede Aktion in statische jobXml-Dateien. Dann benötigen Sie nur eine einzige Konfigurationsdatei für die tatsächlichen Unterschiede zwischen den Jobläufen.
+0

Danke, Chris. Ich vermutete, dass ich mein Build-Skript dazu bringen würde, die beiden Dateien zu verketten, aber Sie haben mir eine Reihe anderer guter Optionen gegeben. –

+0

@TimGoodman was hast du gemacht? Ich habe einen ähnlichen Anwendungsfall. –