All of the o.a.h.mapreduce.Job constructors that don't require the caller to have already created and supplied a Cluster are deprecated.
Dick, I did not understand your comment above. Job constructors are deprecated in favor of static getInstance methods wrt comment1 and comment2
If the user is passing a Cluster handle, it is fine to initialize it in the constructor. So, current constructors and getInstance methods look fine. Only if user does not pass Cluster handle, then we need to create it lazily.
We can add following method in Job.java which creates Cluster lazily:
public static getInstance(Configuration conf)
Also, will have to change deprecated constructors to create Cluster handle lazily.