2017-09-15 4 views
0

Wir entwickeln Dutzende von verschiedenen Workflows in Oozie. Wir verwenden 3 Umgebungen, DEV, PRE und PRO.Externalize Eigenschaften für Oozie Workflows in Cloudera

Was ich tun möchte, ist die gleichen workflow.xml Dateien in allen 3 Umgebungen zu behalten und nur Eigenschaften für Db-Verbindungen, URLs, Authentifizierungen usw. aus der Cloudera-Umgebung zu lesen. Auf diese Weise wäre es möglich, die Dateien zu versionieren und leicht zu verteilen. Ist es möglich?

Googeln, sah ich vielleicht config-default.xml wäre ein Ort für Standard-Eigenschaften, aber ich kann keine in unserem Cloudera 5.10 finden. Wir verwenden Hue, um die Arbeitsabläufe zu gestalten, obwohl wir WFs auf andere Weise definieren können.

Danke!

Antwort

1

Sie können Jobeigenschaften verwenden, um dies zu erreichen.

oozie job -oozie http://localhost:11000/oozie -config dev.properties -run 

Wenn Sie eine Immobilie als queueName=devqueue in Ihrer dev.properties Datei zu installieren, können Sie es in der workflow.xml beziehen ${queueName}

Bitte beachten Sie, dass Job-Eigenschaften-Datei ist eine lokale Datei , nicht in HDFS. Sie können mehr Details darüber in https://oozie.apache.org/docs/4.0.0/DG_Examples.html erhalten.

+0

Hallo Lan, danke für die Antwort. Die Sache ist, dass unser Kunde eine grafische Schnittstelle wie Hue haben möchte, so dass er jeden Job im Datalake kontrollieren (einschließlich starten) kann. Vielleicht könnten wir extern job.properties im WF-Arbeitsbereich bearbeiten? Eigentlich habe ich versucht, den Inhalt der Datei zu bearbeiten, aber Hue ignoriert die neuen Werte - beim Senden öffnet sich ein Popup mit allen Eigenschaften mit unveränderten Werten. Vielleicht mache ich etwas falsch? – elkarel

Verwandte Themen