Open todd-fritz opened 8 years ago
Hey Todd,
The job type needs to handle the Kerberos stuff. Take a look at HadoopJavaJob.java as an example. Under the hood, HadoopSecurityManager_H_2_0.java takes care of most of the Hadoop token stuff.
I'm running into this as well. The answer is you do need to do a kinit within each job because its appending the flow/job information instead of the uid of the username:
$ id uid=1665152075(azkaban)
This is the error:
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cctest_project__test_jobtest_job31azkaban)
This is where the ticket actually is: Ticket cache: FILE:/tmp/krb5cc_1665152075
Does each flow need to do a kinit and build the ticket cache itself, or does Azkaban handle that? I see the code where a job buids the name of the ticket cache that is specific to a job, but don't see where it is created. If a shell script calls a utility such as hdfs via a command job type, how is the ticket known by the hadoop client?
And putting it in the environment:
With the env variable containing the ticket cache named "KRB5CCNAME".