I have implemented all the comments except
-Structure wise, it would be better to rename GridmixJob to LoadJob, and create a common base (probably should be abstract) class for LoadJob and SleepJob and call it GridmixJob that only contains the shared parts of LoadJob and SleepJob. E.g. outdir may only belong to LoadJob but not SleepJob. (BTW, are File
Path needed for SleepJob.call()?)
GridmixJob is created as an abstract class , outdir has been pushed to GridmixJob as SleepJob is also using this. We need File
Path for mapreduce . Iam not sure if this is a bug , but it is required.