Hadoop on Mesos fails with "Could not find or load main class org.apache.hadoop.mapred.MesosExecutor" Hadoop on Mesos fails with "Could not find or load main class org.apache.hadoop.mapred.MesosExecutor" hadoop hadoop

Hadoop on Mesos fails with "Could not find or load main class org.apache.hadoop.mapred.MesosExecutor"


I found the problem. bin/hadoop of the downloaded Hadoop distribution attempts to find its location by running which $0. However, that will find a current Hadoop installation if one exists (i.e. /usr/lib/hadoop), and will load the jars under that installation's lib directory instead of the downloaded one's lib directory.

I had to modify bin/hadoop of the downloaded distribution to find its own location with dirname $0 instead of which $0.