Hi! In a test I tried to run a job which is in separate jar with MiniMRYarnCluster and got ClassNotFoundException for the Mapper class that is in that jar.
I went a bit deeper and found possible bug in LocalJobRunner: currently: this.job = new JobConf(localJobFile); // Job (the current object) is a Thread, so we wrap its class loader. if (localDistributedCacheManager.hasLocalClasspaths()) { setContextClassLoader(localDistributedCacheManager.makeClassLoader( getContextClassLoader())); } should be: this.job = new JobConf(localJobFile); // Job (the current object) is a Thread, so we wrap its class loader. if (localDistributedCacheManager.hasLocalClasspaths()) { ClassLoader classLoader = localDistributedCacheManager.makeClassLoader(getContextClassLoader()); setContextClassLoader(classLoader); this.job.setClassLoader(classLoader); } I.e. we need to set classloader for job configuration so that it can load classes from the jar. If the above makes sense I will file JIRA with patch, otherwise, what am I missing? Thank you, Alex Baranau