[ https://issues.apache.org/jira/browse/MAPREDUCE-5831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Junping Du updated MAPREDUCE-5831: ---------------------------------- Priority: Blocker (was: Critical) > Old MR client is not compatible with new MR application > ------------------------------------------------------- > > Key: MAPREDUCE-5831 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-5831 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: client, mr-am > Affects Versions: 2.2.0, 2.3.0 > Reporter: Zhijie Shen > Assignee: Junping Du > Priority: Blocker > > Recently, we saw the following scenario: > 1. The user setup a cluster of hadoop 2.3., which contains YARN 2.3 and MR > 2.3. > 2. The user client on a machine that MR 2.2 is installed and in the classpath. > Then, when the user submitted a simple wordcount job, he saw the following > message: > {code} > 16:00:41,027 INFO main mapreduce.Job:1345 - map 100% reduce 100% > 16:00:41,036 INFO main mapreduce.Job:1356 - Job job_1396468045458_0006 > completed successfully > 16:02:20,535 WARN main mapreduce.JobRunner:212 - Cannot start job > [wordcountJob] > java.lang.IllegalArgumentException: No enum constant > org.apache.hadoop.mapreduce.JobCounter.MB_MILLIS_REDUCES > at java.lang.Enum.valueOf(Enum.java:236) > at > org.apache.hadoop.mapreduce.counters.FrameworkCounterGroup.valueOf(FrameworkCounterGroup.java:148) > at > org.apache.hadoop.mapreduce.counters.FrameworkCounterGroup.findCounter(FrameworkCounterGroup.java:182) > at > org.apache.hadoop.mapreduce.counters.AbstractCounters.findCounter(AbstractCounters.java:154) > at > org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:240) > at > org.apache.hadoop.mapred.ClientServiceDelegate.getJobCounters(ClientServiceDelegate.java:370) > at > org.apache.hadoop.mapred.YARNRunner.getJobCounters(YARNRunner.java:511) > at org.apache.hadoop.mapreduce.Job$7.run(Job.java:756) > at org.apache.hadoop.mapreduce.Job$7.run(Job.java:753) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:415) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) > at org.apache.hadoop.mapreduce.Job.getCounters(Job.java:753) > at org.apache.hadoop.mapreduce.Job.monitorAndPrintJob(Job.java:1361) > at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1289) > . . . > {code} > The problem is that the wordcount job was running on one or more than one > nodes of the YARN cluster, where MR 2.3 libs were installed, and > JobCounter.MB_MILLIS_REDUCES is available in the counters. On the other side, > due to the classpath setting, the client was likely to run with MR 2.2 libs. > After the client retrieved the counters from MR AM, it tried to construct the > Counter object with the received counter name. Unfortunately, the enum didn't > exist in the client's classpath. Therefore, "No enum constant" exception is > thrown here. > JobCounter.MB_MILLIS_REDUCES is brought to MR2 via MAPREDUCE-5464 since > Hadoop 2.3. -- This message was sent by Atlassian JIRA (v6.3.4#6332)