If you use the hadoop job runner, mrjob is going to spawn subprocesses to call `hadoop`: `hadoop fs -put`, `hadoop fs -get` etc. This is why you need to set the location of your local hadoop installation when you use the hadoop job runner. There is no way for mrjob to interact with the remote hadoop cluster if the `hadoop` CLI is not available on the local machine.
With EMR mrjob is able to get away with routing all its interactions through boto, which in turn relies upon the nice REST APIs that AWS exposes.
tl;dr as far as I can tell, you need to have java, hadoop, start the JVM, the whole 9 yards to use the hadoop job runner. No way around it.