These names look a lot cleaner. +1 for the overall direction. But, we should also think of ways to continue doing this going forward even after this issue gets committed.
While doing this, if we can create the corresponding java.lang.String property names, ala HADOOP-3583 , and use them everywhere, it will be real good. For e.g.,
static final String MAPREDUCE_CLUSTER_EXAMPLE_CONFIG_PROPERTY = "mapreduce.cluster.example.config"
Also, I think usage of strings like mapreduce.map.max.attempts and mapreduce.jobtracker.maxtasks.per.job should be discouraged in favour of mapreduce.map.max-attempts and mapreduce.jobtracker.maxtasks-per-job respectively. Thoughts about this?
I am assuming that configuration related to sub-components should start with a prefix of the parent component. For e.g., mapred.healthChecker.script.args will be mapreduce.tasktracker.healthChecker.script-args . Right?