Search code examples
hadoopclouderaoozie

How to propagate delegation token in Oozie ssh action


I have an oozie shell action that executes a bunch of hadoop fs -get merge commands, it is currently failing because of:

[Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

In oozie docs it says how to do it for Java actions: here

IMPORTANT: In order for a Java action to succeed on a secure cluster, it must propagate the Hadoop delegation token like in the following code snippet (this is benign on non-secure clusters):

// propagate delegation related props from launcher job to MR job if (System.getenv("HADOOP_TOKEN_FILE_LOCATION") != null) { jobConf.set("mapreduce.job.credentials.binary", System.getenv("HADOOP_TOKEN_FILE_LOCATION")); }

How do I do this for Shell? when i try to echo $HADOOP_TOKEN_FILE_LOCATION, it returns nothing


Solution

  • Can you try using kinit command to authenticate using keytab in the shell script

     kinit ${kinit_url} -k -t <keytab>;