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

Benjamin Reed updated PIG-570:
------------------------------

    Attachment: PIG-570.patch

I believe the problem is due to bad position tracking. In the current version 
of the code, we chop up the input into blocks, but unfortunately when using 
bzip there are bzip block boundaries, HDFS block boundaries, and record 
boundaries. if the bzip block boundaries line up too closely, a record could 
get skipped or possibly corrupted.

i was able to reproduce a problem, hopefully it is the same as your problem in 
the attached test case.

the root cause turn out to be improper tracking of "position". if we blindly 
use the position of the underlying stream and a bzip block and HDFS block line 
up we may think that we have read the first record of the next slice when in 
fact we have only read the bzip block header.

the attached patch fixes the problem by defining the position of the stream as 
the position of the start of the current block header in the underlying stream.

> Large BZip files  Seem to loose data in Pig
> -------------------------------------------
>
>                 Key: PIG-570
>                 URL: https://issues.apache.org/jira/browse/PIG-570
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: types_branch, 0.0.0, 0.1.0, site
>         Environment: Pig 0.1.1/Linux / 8 Nodes hadoop 0.18.2
>            Reporter: Alex Newman
>             Fix For: types_branch, 0.0.0, 0.1.0, site
>
>         Attachments: PIG-570.patch
>
>
> So I don't believe  bzip2 input to pig is working, at least not with large 
> files. It seems as though map files are getting cut off. The maps complete 
> way too quickly and the actual row of data that pig tries to process often 
> randomly gets cut, and becomes incomplete. Here are my symptoms:
> - Maps seem to be completing in a unbelievably fast rate
> With uncompressed data
> Status: Succeeded
> Started at: Wed Dec 17 21:31:10 EST 2008
> Finished at: Wed Dec 17 22:42:09 EST 2008
> Finished in: 1hrs, 10mins, 59sec
> map   100.00%
> 4670  0       0       4670    0       0 / 21
> reduce        57.72%
> 13    0       0       13      0       0 / 4
> With bzip compressed data
> Started at: Wed Dec 17 21:17:28 EST 2008
> Failed at: Wed Dec 17 21:17:52 EST 2008
> Failed in: 24sec
> Black-listed TaskTrackers: 2
> Kind  % Complete      Num Tasks       Pending Running Complete        Killed  
> Failed/Killed
> Task Attempts
> map   100.00%
> 183   0       0       15      168     54 / 22
> reduce        100.00%
> 13    0       0       0       13      0 / 0
> The errors we get:
> ava.lang.IndexOutOfBoundsException: Requested index 11 from tuple (rec        
> A, 0HAW, CHIX, )
>       at org.apache.pig.data.Tuple.getField(Tuple.java:176)
>       at org.apache.pig.impl.eval.ProjectSpec.eval(ProjectSpec.java:84)
>       at org.apache.pig.impl.eval.SimpleEvalSpec$1.add(SimpleEvalSpec.java:38)
>       at org.apache.pig.impl.eval.EvalSpec.simpleEval(EvalSpec.java:223)
>       at org.apache.pig.impl.eval.cond.CompCond.eval(CompCond.java:58)
>       at org.apache.pig.impl.eval.FilterSpec$1.add(FilterSpec.java:60)
>       at 
> org.apache.pig.backend.hadoop.executionengine.mapreduceExec.PigMapReduce.run(PigMapReduce.java:117)
>       at org.apache.hadoop.mapred.MapTask.run(MapTask.java:227)
>       at 
> org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2207)
> Last 4KB
> attempt_200812161759_0045_m_000007_0  task_200812161759_0045_m_000007 
> tsdhb06.factset.com     FAILED  
> java.lang.IndexOutOfBoundsException: Requested index 11 from tuple (rec       
> A, CSGN, VTX, VTX, 0, 20080303, 90919, 380, 1543, 206002)
>       at org.apache.pig.data.Tuple.getField(Tuple.java:176)
>       at org.apache.pig.impl.eval.ProjectSpec.eval(ProjectSpec.java:84)
>       at org.apache.pig.impl.eval.SimpleEvalSpec$1.add(SimpleEvalSpec.java:38)
>       at org.apache.pig.impl.eval.EvalSpec.simpleEval(EvalSpec.java:223)
>       at org.apache.pig.impl.eval.cond.CompCond.eval(CompCond.java:58)
>       at org.apache.pig.impl.eval.FilterSpec$1.add(FilterSpec.java:60)
>       at 
> org.apache.pig.backend.hadoop.executionengine.mapreduceExec.PigMapReduce.run(PigMapReduce.java:117)
>       at org.apache.hadoop.mapred.MapTask.run(MapTask.java:227)
>       at 
> org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2207)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to