hadoop-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Molina <rmol...@hortonworks.com>
Subject Re: HDFS "file" missing a part-file
Date Wed, 03 Oct 2012 00:26:22 GMT
 What I guess might be happening is that your data may contain some text
data that pig is not fully parsing because the data contains characters
that pig uses as delimiters (i.e commas and curly brackets).  Thus, you can
probably take a look at the data and see if you can find any of the
characters used by pig to distinguish values, bags, tuples.  You also might
want to move this topic to the pig forums to see if anyone else has faced a
similar issue.

On Tue, Oct 2, 2012 at 5:26 AM, Björn-Elmar Macek <macek@cs.uni-kassel.de>wrote:

> Hi again,
>
> i executed a slightly different script again, that included some more
> operations. The logs look similar, but this time i have 2 attempt files for
> the same job-package:
> (1) _temporary/_attempt_**201210021204_0001_r_000001_0/**part-r-00001
> (2) _temporary/_attempt_**201210021204_0001_r_000001_1/**part-r-00001
>
> For me it looks like 2 results of the same jobpackage - this time both
> being not empty as before, but with about blocksize which is about 700 mb.
> I hoped, that both files contained the same content, but "diff" showed me
> that this was not the case. I merged both files with a combination of "cat"
> and "sort -u": the result is a file of about 1.2 gb, which indicates for
> me, that there were many different lines. I suppose, that the cluster didnt
> manage to compute this part-file, tho i have no idea what makes this file
> so special, that it is always this one which is corrupt(?).
>
> The worst solution would be for me to simply ignore this error and
> continue working with the merged file. Is there anybody who has experienced
> similar things?
> If there is a way to fix this, i would love to know, how? Possible reasons
> for the problems are also very appreciated! :)
>
>
> Am 01.10.2012 22:36, schrieb Björn-Elmar Macek:
>
>
>> The script i now want to executed looks like this:
>>
>> x = load 'tag_count_ts_pro_userpair' as (group:tuple(),cnt:int,times:**
>> bag{t:tuple(c:chararray)});
>> y = foreach x generate *, moins.daysFromStart('2011-06-**01 00:00:00',
>> times);
>> store y into 'test_daysFromStart';
>>
>>
>> The problem is, that i do not have the logs anymore due to space
>> constraints within the cluster. But i think i can explain the important
>> parts:
>> The script that created this data was a GROUP statement followed by a
>> FOREACH calculating a COUNT on the bag mentioned above as "times" which is
>> represented in the 2nd column named "cnt". The results were stored via a
>> simple "store".
>> The resulting pig calculation started as expected, but stoppped showing
>> me progress at a certain percentage. A "tail -f" on the hadoop/logs dir
>> revealed that the hadoop calculation progressed nontheless - although some
>> of the tasktrackers permanently vanished during the shuffle phase with the
>> committed/eof/mortbay exception and stopped at least producing any more log
>> output. As i really continiously watched the log i could see, that those
>> work packages were handled by the remaining servers after some of them
>> already calculated packages of progress 1.0. Even the cleanup phase in the
>> end was done, ALTHOUGH(!) the pig log didn't reflect the calculations of
>> the cluster. And since i found the file as output in hdfs i supposed the
>> missing pig progress log entries were simply pig problems. Maybe im wrong
>> with that.
>>
>> But i did the calculations several times and this happened during every
>> execution.
>>
>> Is there something wrong with the data or the calculations?
>>
>>
>> On Mon, 1 Oct 2012 13:01:41 -0700, Robert Molina <rmolina@hortonworks.com>
>> wrote:
>>
>>> It seems that maybe the previous pig script didn't generate the output
>>> data or write correctly on hdfs. Can you provide the pig script you
>>> are trying to run?  Also, for the original script that ran and
>>> generated the file, can you verify if that job had any failed tasks?
>>>
>>> On Mon, Oct 1, 2012 at 10:31 AM, Björn-Elmar Macek  wrote:
>>>
>>>  Hi Robert,
>>>
>>>  the exception i see in the output of the grunt shell and in the pig
>>> log respectively is:
>>>
>>>  Backend error message
>>>  ---------------------
>>>  java.util.EmptyStackException
>>>          at java.util.Stack.peek(Stack.**java:102)
>>>          at
>>>
>>> org.apache.pig.builtin.**Utf8StorageConverter.**consumeTuple(**Utf8StorageConverter.java:182)
>>>
>>>          at
>>>
>>> org.apache.pig.builtin.**Utf8StorageConverter.**bytesToTuple(**Utf8StorageConverter.java:501)
>>>
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.physicalLayer.**
>>> expressionOperators.POCast.**getNext(POCast.java:905)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.physicalLayer.**
>>> PhysicalOperator.getNext(**PhysicalOperator.java:334)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.physicalLayer.**
>>> relationalOperators.POForEach.**processPlan(POForEach.java:**332)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.physicalLayer.**
>>> relationalOperators.POForEach.**getNext(POForEach.java:284)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.physicalLayer.**
>>> PhysicalOperator.processInput(**PhysicalOperator.java:290)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.physicalLayer.**
>>> relationalOperators.POForEach.**getNext(POForEach.java:233)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.**mapReduceLayer.**
>>> PigGenericMapBase.runPipeline(**PigGenericMapBase.java:271)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.**mapReduceLayer.**
>>> PigGenericMapBase.map(**PigGenericMapBase.java:266)
>>>          at
>>>
>>> org.apache.pig.backend.hadoop.**executionengine.**mapReduceLayer.**
>>> PigGenericMapBase.map(**PigGenericMapBase.java:64)
>>>          at
>>> org.apache.hadoop.mapreduce.**Mapper.run(Mapper.java:144)
>>>          at
>>> org.apache.hadoop.mapred.**MapTask.runNewMapper(MapTask.**java:764)
>>>          at org.apache.hadoop.mapred.**MapTask.run(MapTask.java:370)
>>>          at org.apache.hadoop.mapred.**Child$4.run(Child.java:255)
>>>          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:**1121)
>>>          at org.apache.hadoop.mapred.**Child.main(Child.java:249)
>>>
>>>  On Mon, 1 Oct 2012 10:12:22 -0700, Robert Molina  wrote:
>>>
>>>  Hi Bjorn,
>>>  Can you post the exception you are getting during the map phase?
>>>
>>>  On Mon, Oct 1, 2012 at 9:11 AM, Björn-Elmar Macek  wrote:
>>>
>>>   Hi,
>>>
>>>   i am kind of unsure where to post this problem, but i think it is
>>>  more related to hadoop than to pig.
>>>
>>>   By successfully executing a pig script i created a new file in my
>>>  hdfs. Sadly though, i cannot use it for further processing except for
>>>  "dump"ing and viewing the data: every data-manipulation
>>> script-command
>>>  just as "foreach" gives exceptions during the map phase.
>>>   Since there was no problem executing the same script on the first
>>> 100
>>>  lines of my data (LIMIT statement),i copied it to my local fs folder.
>>>   What i realized is, that one of the files namely part-r-000001 was
>>>  empty and contained within the _temporary folder.
>>>
>>>   Is there any reason for this? How can i fix this issue? Did the job
>>>  (which created the file we are talking about) NOT run properly til
>>> its
>>>  end, although the tasktracker worked til the very end and the file
>>> was
>>>  created?
>>>
>>>   Best regards,
>>>   Björn
>>>
>>>  Links:
>>>  ------
>>>  [1] mailto:macek@cs.uni-kassel.de [3]
>>>
>>>
>>>
>>> Links:
>>> ------
>>> [1] mailto:ema@cs.uni-kassel.de
>>> [2] mailto:rmolina@hortonworks.com
>>> [3] mailto:macek@cs.uni-kassel.de
>>>
>>
>>
>>
>

Mime
View raw message