Sie können hierfür eine verwenden. Grundsätzlich müssen Sie eine Shell-Aktion erstellen bieten & die Befehle, die Sie in Ihrer Frage gestellt, da die Befehle innerhalb der Aktion
Probe Oozie Aktion ausgeführt werden:
<action name="SqoopAction">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>[JOB-TRACKER]</job-tracker>
<name-node>[NAME-NODE]</name-node>
<prepare>
<delete path="[PATH]"/>
...
<mkdir path="[PATH]"/>
...
</prepare>
<job-xml>[SHELL SETTINGS FILE]</job-xml>
<configuration>
<property>
<name>[PROPERTY-NAME]</name>
<value>[PROPERTY-VALUE]</value>
</property>
...
</configuration>
<exec>[SHELL-COMMAND]</exec>
<argument>[ARG-VALUE]</argument>
...
<argument>[ARG-VALUE]</argument>
<env-var>[VAR1=VALUE1]</env-var>
...
<env-var>[VARN=VALUEN]</env-var>
<file>[FILE-PATH]</file>
...
<archive>[FILE-PATH]</archive>
...
<capture-output/>
</shell>
In Ihrem Fall würden Sie ersetzen [SHELL-COMMAND]
mit dem, was Sqoop Befehl mögen Sie, wie laufen:
<exec>sqoop export --connect jdbc:mysql://localhost/hduser --table foo1 -m 1 --export-dir /user/cloudera/bar1</exec>
auch könnten Sie alle Ihre Sqoop Befehle in einem Shell-Skript setzen, und das Skript stattdessen auszuführen. Dies ist besser, wenn Sie viele Befehle ausführen müssen.
Hallo, Vielen Dank. Wie führe ich workflow.xml aus? Wo lege ich die Datei workflow.xml ab? Wo definiere ich Parameter für "$ {jobTracker}"? Ich bin neu bei Oozie und Ihre Hilfe wird geschätzt. – Rio
jobTracker und nameNode werden hier parametrisiert, was bedeutet, dass sie in der Datei job.properties definiert werden sollte. Es scheint, als hättest du die Beispiele nicht durchgegangen. Überprüfen Sie die Apache Oozie Website. Sie haben gute Beispiele geliefert. Hier ist der Link. [https://oozie.apache.org/docs/3.3.2/DG_Examples.html.html (http://oozie.apache.org/docs/3.3.2/DG_Examples.html) – DMA
Ok danke. Meine Hadoop-Version ist: Hadoop 2.0.0-cdh4.3.1. Kann ich für diese Version von Hadoop shoop-Aktionen in oozie verwenden? – Rio