I am getting the following error while executing a mapreduce job in my hadoop cluster (distributed cluster).
I found the error below in the application logs in Yarn where the mapper fails.
java.lang.NoSuchMethodError: org/apache/hadoop/mapreduce/util/MRJobConfUtil.setTaskLogProgressDeltaThresholds(Lorg/apache/hadoop/conf/Configuration;)V (loaded from file:/data/hadoop/yarn/usercache/hdfs-user/appcache/application_1671477750397_2609/filecache/11/job.jar/job.jar by sun.misc.Launcher$AppClassLoader@8bf41861) called from class org.apache.hadoop.mapred.TaskAttemptListenerImpl
CodePudding user response:
The hadoop version is Hadoop 3.3.0
Okay, that method exists in that version, but not 3.0.0
Therefore, you need to use hadoop-client
dependency of that version, not 3.0.0-cdh6...
. Also, use compileOnly
with it not implementation
. This way, it is not confliciting with what YARN already has on its classpath.
Similarly, spark-core
would have the same problem, and if you have Spark in your app anyway, then use it, not MapReduce functions.
Run gradle dependencies
, then search for hadoop libraries and ensure they are 3.3.0