Ich habe einen Oozie-Workflow geschrieben, der ein BASH-Shell-Skript ausführt, um einige Hive-Abfragen auszuführen und einige Aktionen an den Ergebnissen auszuführen. Das Skript wird ausgeführt, aber es wird ein Berechtigungsfehler ausgegeben, wenn auf einige der HDFS-Daten zugegriffen wird. Der Benutzer, der den Oozie-Workflow gesendet hat, hat eine Berechtigung, aber das Skript wird als Garnbenutzer ausgeführt.Oozie-Shell-Aktion wird nicht ausgeführt, wenn Benutzer gesendet wird
Kann Oozie das Skript als Benutzer ausführen, der den Workflow gesendet hat? Hive- und Java-Aktionen werden beide als übergebender Benutzer ausgeführt, nur die Shell verhält sich anders.
Hier ist die grobe Skizze meiner Oozie Aktion
<action name="start_action"
retry-max="12"
retry-interval="600">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>${WorkflowRoot}/hive-site.xml</job-xml>
<exec>script.sh</exec>
<file>${WorkflowRoot}/script.sh</file>
<capture-output />
</shell>
<ok to="next_action"/>
<error to="send_email"/>
</action>
Ich bin mit Oozie 4.1.0 und HDP 2.1.
Haben Sie hcat.metastore.uri, hcat.metastore.principal in Anmeldeinformationen festgelegt? – Prashanth