[ https://issues.apache.org/jira/browse/PIG-3002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13552087#comment-13552087 ]
Bill Graham commented on PIG-3002: ---------------------------------- This exception gets thrown when a job creates more than 120 counters and we then go to check on expected counters at the conclusion of the job. Each call to getCounter will throw CountersExceededException. Your patch will swallow that exception and result in the user being messaged that the counter exists and has a value of 0. We don't want to do that in this case. Instead we want to message the user that we couldn't access counters due to the limit issue and that we don't know what the counter values are. Also, the logic behind getCounterValue shouldn't be driven my just this one caller. Other callers who want to get a counter value wouldn't (and shouldn't) expect that the method swallows exceptions and returns 0. > Pig client should handle CountersExceededException > -------------------------------------------------- > > Key: PIG-3002 > URL: https://issues.apache.org/jira/browse/PIG-3002 > Project: Pig > Issue Type: Bug > Reporter: Bill Graham > Assignee: Jarek Jarcec Cecho > Labels: newbie, simple > Attachments: PIG-3002.patch > > > Running a pig job that uses more than 120 counters will succeed, but a grunt > exception will occur when trying to output counter info to the console. This > exception should be caught and handled with friendly messaging: > {noformat} > org.apache.pig.backend.executionengine.ExecException: ERROR 2043: Unexpected > error during execution. > at org.apache.pig.PigServer.launchPlan(PigServer.java:1275) > at > org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1249) > at org.apache.pig.PigServer.execute(PigServer.java:1239) > at org.apache.pig.PigServer.executeBatch(PigServer.java:333) > at > org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:136) > at > org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:197) > at > org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:169) > at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84) > at org.apache.pig.Main.run(Main.java:604) > at org.apache.pig.Main.main(Main.java:154) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.hadoop.util.RunJar.main(RunJar.java:186) > Caused by: org.apache.hadoop.mapred.Counters$CountersExceededException: > Error: Exceeded limits on number of counters - Counters=120 Limit=120 > at > org.apache.hadoop.mapred.Counters$Group.getCounterForName(Counters.java:312) > at org.apache.hadoop.mapred.Counters.findCounter(Counters.java:431) > at org.apache.hadoop.mapred.Counters.getCounter(Counters.java:495) > at > org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.computeWarningAggregate(MapReduceLauncher.java:707) > at > org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:442) > at org.apache.pig.PigServer.launchPlan(PigServer.java:1264) > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira