Details
Description
As mentioned in MAPREDUCE-4324, Oozie has the following boilerplate code in
in the main launcher for Pig, Hive, MR and Sqoop actions.
if (System.getenv("HADOOP_TOKEN_FILE_LOCATION") != null) {
jobConf.set("mapreduce.job.credentials.binary", System.getenv("HADOOP_TOKEN_FILE_LOCATION"));
}
For Java action, which does not have a main launcher in oozie, the above codecan be added by the user as the user purportedly has the code that is launched.
But for DistCp action, the user has no such luxury. The solution attempted in
MAPREDUCE-4324 would have helped DistCp, but it was not implemented as it would break MAPREDUCE-3727. So, we have to fix DistCp and
add the same boilerplate code so that DistCp action can be launched by Oozie
in a secure cluster.
The code added checks for an System env. variable to be set which is not
typically set in normal command line execution of DistCp, DistCp runs fine
with commnad line usage both in secure and non-secure cluster.