hmm,this is how mapreduce application master handle it (see YARNRunner.java).  In the performance testing environment I was testing on, it didn't have it in the path on all the nodes. Ops could choose to install java in a different location from the normal system install and use that to run Hadoop.   I'll have to check our other environments and production. Having this (using JAVA_HOME) there is actually also beneficial for other reasons. For instance you could have multiple java installs and the user could chose which one to use if ops allowed it. For instance one 32 bit one 64 bit. I'll investigate some more.