1
votes

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

2

2 Answers

0
votes

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

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

The Hadoop delegation tokens are copied to the local/current directory by Oozie. export HADOOP_TOKEN_FILE_LOCATION=./container_tokens should help.