2016-10-02 1 views
1

Ich versuche, einen einfachen Oozie-Job auszuführen, um Daten aus einer lokalen MySQL-Datenbank mit Sqoop zu ziehen. Unten ist mein workflow.xml:Oozie Job schlägt fehl

<workflow-app name="sqoopoozietest" xmlns="uri:oozie:workflow:0.1"> 
<start to="sqoopconnect"/> 
<action name="sqoopconnect"> 
    <sqoop xmlns="uri:oozie:sqoop-action:0.2"> 
     <job-tracker>horton-n2.hdp.local:8050</job-tracker> 
     <name-node>hdfs://horton-n1.hdp.local:8020</name-node> 
     <prepare> 
      <delete path="hdfs://horton-n1.hdp.local:8020/user/mannb/sqoopoozie/sqoopinput"/> 
     </prepare> 
     <configuration> 
      <property> 
       <name>mapred.compress.map.output</name> 
       <value>true</value> 
      </property> 
     </configuration> 
     <command>import --connect jdbc:mysql://horton-n1.hdp.local/sqooptest --table sampledata --username sqoop --password sqoop123 --target-dir --driver com.mysql.jdbc.Driver hdfs://horton-n1.hdp.local:8020/user/mannb/sqoopoozie/sqoopinput -m 1</command> 
    </sqoop> 
    <ok to = "sqoopend"/> 
    <error to = "kill"/> 
</action> 

    <kill name = "kill"> 
     <message>"Workflow failed."</message> 
    </kill> 

    <end name = "sqoopend" /> 
</workflow-app> 

Der Hauptfehler ich einen Fehler von /var/log/oozie.log bin Empfang:

javax.servlet.jsp.el.ELException: Die Funktion " wf: errorMessage "benötigt 1 Argumente, wurde aber übergeben 0

Ich dachte, das war seltsam, da ich ein Argument an die Nachricht Kill Name übergeben:" Workflow fehlgeschlagen. ".

Unten ist mein job.properties Datei:

nameNode=hdfs://horton-n1.hdp.local:8020 
jobTracker=horton-n2.hdp.local:8050 

queueName=default 
#oozie.use.system.libpath=true 

oozie.wf.application.path=${nameNode}/user/mannb/sqoopoozie/workflow.xml 

Jede Hilfe wird sehr geschätzt.

Antwort

1

Ändern Sie Ihren Code wie folgt.

<error to = "kill_job"/> 

<kill name = "kill_job"> 
     <message>Workflow failed</message> 
</kill> 
+0

Ich machte diese Änderung, und immer noch den gleichen Fehler in oozie.log. Ich habe # oozie.use.system.libpath = true auch von job.properties auskommentiert, da das Auskommentieren ein Problem beim Finden der Sqoop .jars verursacht hat. – user2432819

+0

Ich hatte einen Fehler in meinem SQLOOP-Importbefehl. Nachdem es korrigiert wurde, lief es erfolgreich, immer noch unsicher, warum der Fehlercode nicht korrekt zurückgegeben wurde. Das hat mich vom Hauptproblem abgelenkt. Danke für Ihre Eingaben. – user2432819

+0

Das hat mich auch abgelenkt, aber im Fehlerszenario sollte es funktionieren, du musst es vielleicht einmal überprüfen. –