gpt4 book ai didi

hadoop - 在 AWS EMR 上使用 pig 的 Java 堆空间

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

我在 AWS EMR 集群(4 核 m3.xlarge)上处理 40GB 文本文件时遇到了这个问题。
FATAL [main] org.apache.hadoop.mapred.YarnChild:运行子错误:java.lang.OutOfMemoryError:Java 堆空间

它发生在映射过程中。作业开始,然后在几分钟后失败。
emr-4.4.0,亚马逊 2.7.1, pig 0.14.0

我用不同的值尝试了这些命令,但问题仍然存在:

  • pig -Dmapreduce.map.java.opts=-Xmx2304m
    -Dmapred.child.java.opts=-Xmx3072m script.pig
  • pig -Dmapreduce.map.java.opts=-Xmx3328m
    -Dmapred.child.java.opts=-Xmx4096m -Dmapreduce.map.memory.mb=5120 script.pig

  • 我的想法不多了……有什么建议吗?

    2016-03-26 08:05:06,087 INFO [main] amazon.emr.metrics.MetricsSaver: 1 聚合 HDFSReadBytes 63 个原始值到 5 个聚合值,总共 5
    2016-03-26 08:05:17,518 FATAL [main] org.apache.hadoop.mapred.YarnChild:运行子错误:java.lang.OutOfMemoryError:Java 堆空间
    在 java.util.Arrays.copyOf(Arrays.java:2271)
    在 org.apache.hadoop.io.Text.setCapacity(Text.java:266)
    在 org.apache.hadoop.io.Text.append(Text.java:236)
    在 org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:243)
    在 org.apache.hadoop.util.LineReader.readLine(LineReader.java:174)
    在 org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:185)
    在 org.apache.pig.builtin.TextLoader.getNext(TextLoader.java:58)
    在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader.nextKeyValue(PigRecordReader.java:204)
    在 org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:565)
    在 org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
    在 org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
    在 org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:152)
    在 org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:796)
    在 org.apache.hadoop.mapred.MapTask.run(MapTask.java:342)
    在 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:172)
    在 java.security.AccessController.doPrivileged( native 方法)
    在 javax.security.auth.Subject.doAs(Subject.java:415)
    在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
    在 org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:166)

    2016-03-26 08:05:17,621 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl:停止 MapTask 指标系统...
    2016-03-26 08:05:17,622 信息 [cloudwatch] org.apache.hadoop.metrics2.impl.MetricsSinkAdapter:cloudwatch 线程中断。
    2016-03-26 08:05:17,625 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl:MapTask 指标系统已停止。
    2016-03-26 08:05:17,625 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl:MapTask 指标系统关闭完成。

    最佳答案

    我找到了为什么我有这个问题。在我的文本文件中,我有几行带有这个字符 ^@^@^@^@^@^@^@^@^@^ 的行生成了很长的行。删除后,它可以正常工作

    https://superuser.com/questions/75130/how-to-remove-this-symbol-with-vim

    关于hadoop - 在 AWS EMR 上使用 pig 的 Java 堆空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233246/

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