2017-11-17 3 views
0

Ich versuche, ein einfaches Hive-Skript mit Oozie zu testen, aber ich bekomme immer einen Fehler, den ich nicht verstehen kann.Oozie Hive-Aktion bleibt wegen Parametrierung aus?

Jedes Mal, wenn ich einen Job übergebe, erhalte ich die Fehlermeldung "Job fehlgeschlagen, Fehlermeldung [Parameterausdruck muss eine Zuweisung enthalten: jobRequest]". Allerdings habe ich diesen Parameter definiert und ihm einen Wert zuweisen, wenn ich die Konfiguration ursprünglich absende.

Der fragliche Parameter ist für einen externen Hive-Tabellennamen, den ich versuche zu erstellen. Im Oozie Workflow definiere ich den Namen der Tabelle Parameter, der hier auf die Hive-Skript übergeben wird immer:

<param>${hiveTableName}</param> 

ich ein job.xml dann erstellen, die ich Oozie vorlegen, in dem dieser Parameter den Wert wie so zugeordnet ist, :

<property> 
    <name>hiveTableName</name> 
    <value>jobRequest</value> 
</property> 

Hat jemand anderes läuft wie dies in ein Thema oder eine Vorstellung davon hat, was es verursachen könnte? Es scheint, als ob der Parameter richtig definiert und zugewiesen wurde, aber der Job bleibt mit der obigen Fehlermeldung im Fehlerfall. Wenn es hilft, dass die XML-Namespace Ich verwende ist:

<hive xmlns="uri:oozie:hive-action:0.2"> 

Antwort

0

ich eine Fehlermeldung, die besagt, „Job fehlgeschlagen, Fehlermeldung [Parameter Ausdruck muss eine Zuordnung enthalten: jobRequest]“

Es beschwert sich, dass der Zuweisungsoperator in der Param-Tag fehlt. Überprüfen Sie die Dokumentation für weitere Details https://oozie.apache.org/docs/3.3.1/DG_HiveActionExtension.html

erste Lösung, mit property-Tag verwenden, wie unten

<property> 
    <name>hiveTableName</name> 
    <value>jobRequest</value> 
</property> 

hinzufügen param wie folgt aus:

<param>hiveTableName=${hiveTableName}</param> 

Zweite Lösung über job.properties: Sie wollen Übergeben Sie den Parameter mit <param> Tag, definieren Sie die Variable in Ihren job.properties und übergeben Sie dann mit dem Tag <param>.

beispiels In job.properties add,

hiveTableName=jobRequest 

dann setzen <param>hiveTableName=${hiveTableName}</param> im Oozie Workflow-hive Aktion

+0

Thank you! Dies war das Problem, kann nicht glauben, dass ich die Notation für das Hinzufügen von Params verpasst habe. – user3103493

Verwandte Themen