gpt4 book ai didi

hadoop - 在Pig脚本中加载.gz文件时出错

转载 作者:行者123 更新时间:2023-12-02 21:47:42 24 4
gpt4 key购买 nike

我在HDFS中有大量的.gz文件,我正尝试使用PigStorage加载它们以处理数据,但出现以下异常

java.io.EOFException: Unexpected end of input stream at org.apache.hadoop.io.compress.DecompressorStream.decompress(DecompressorStream.java:137) at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:77) at java.io.InputStream.read(InputStream.java:85) at org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:205) at org.apache.hadoop.util.LineReader.readLine(LineReader.java:169) at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:139) at org.apache.pig.builtin.TextLoader.getNext(TextLoader.java:55) at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader.nextKeyValue(PigRecordReader.java:194) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:530) at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:363) 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:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232) at org.apache.hadoop.mapred.Child.main(Child.java:249)



这可能是某些文件损坏的结果。

pig 是否有任何类型的错误处理,通过它我可以跳过损坏的文件。以下是我正在使用的示例代码:
cal  = load '$inputdir/CAL/*/*/*/*/*/*/*.gz' USING PigStorage('\t');

最佳答案

这可能与损坏的文件有关。

您可以使用mapred.max.map.failures.percent设置(或mapred.max.reduce.failures.percent,但这与您的情况无关)来控制可以忽略的失败百分比。

问题在于,单个映射器可以读取多个gz文件,因此损坏的文件会使映射器失败,并使其跳过可以的文件。

关于hadoop - 在Pig脚本中加载.gz文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com