You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Jarek Jarcec Cecho (JIRA)" <ji...@apache.org> on 2013/01/09 17:12:12 UTC

[jira] [Updated] (PIG-3002) Pig client should handle CountersExceededException

     [ https://issues.apache.org/jira/browse/PIG-3002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jarek Jarcec Cecho updated PIG-3002:
------------------------------------

    Attachment: PIG-3002.patch

I've tried to fix this issue by moving code that is responsible for getting counter value to shim layer. By doing this I can properly catch CountersExceededException only for Hadoop 0.23 and higher.

My current patch do not include any tests as I'm not sure where to put shim related tests. I did however verified the functionality on real clusters with Hadoop 1.x and Hadoop 2.x.
                
> 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
>              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