Fixed TaskTracker and related classes so as to set correct and most restrictive access control for DistributedCache files/archives.
- To do this, it changed the directory structure of per-job local files on a TaskTracker to the following:
$mapred.local.dir
`-- taskTracker
`-- $user
|- distcache
`-- jobcache
- Distributed cache files/archives are now user-owned by the job-owner and the group-owned by the special group-owner of the task-controller binary. The files/archives are set most private permissions possible, and as soon as possible, immediately after the files/dirs are first localized on the TT.
- As depicted by the new directory structure, a directory corresponding to each user is created on each TT when that particular user's first task are assigned to the corresponding TT. These user directories remain on the TT forever are not cleaned when unused, which is targeted to be fixed via
MAPREDUCE-1019.
- The distributed cache files are now accessible _only_ by the user who first localized them. Sharing of these files across users is no longer possible, but is targeted for future versions via
MAPREDUCE-744.