Community Articles

Find and share helpful community-sourced technical articles.
Labels (1)
avatar
Super Guru

SYMPTOM: We are connected to hue using hdfs user. After executing oozie w/f using HUE the workflow is failing.

Below is sample job definition -

<workflow-app name="Headlight" xmlns="uri:oozie:workflow:0.4"> 
<start to="Headlight"/> 
<action name="Headlight"> 
<shell xmlns="uri:oozie:shell-action:0.1"> 
<job-tracker>${jobTracker}</job-tracker> 
<name-node>${nameNode}</name-node> 
<exec>/user/hdfs/oozie/deployments/headlight-exec-all.pl</exec> 
</shell> 
<ok to="end"/> 
<error to="kill"/> 
</action> 
<kill name="kill"> 
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
</kill> 
<end name="end"/> 
</workflow-app> 

ERROR: Tried creating simple script and ran, but the files are created using yarn user as shown below -

#!/bin/sh 
/bin/touch /tmp/test.oozie 
The result is ok. the file is created by the user yarn. 
-rw-r--r-- 1 yarn hadoop 0 Jun 3 03:04 /tmp/test.oozie 

10759-screen-shot-2016-12-24-at-105919-pm.png

ROOT CAUSE:

User is expecting the oozie job should create files after successful run with the ownership as user who submits the job.

Shell actions are not allowed to run as another user as sudo is blocked. If you want a yarn application to run as someone other than yarn (i.e. the submitter), then you'd want to run in a secured environment so that the containers are started up by the submitting user.

RESOLUTION: Configure kerberos within cluster and re-run the job

921 Views