当前位置: 首页 > 知识库问答 >
问题:

在AWS EMR上使用猪Java堆空间

杜辉
2023-03-14

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

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

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

  • 清管器-Dmapreduce。地图Java语言选项=-Xmx2304m-Dmapred。小孩Java语言选项=-Xmx3072m脚本。清管器
  • 清管器-Dmapreduce。地图Java语言选项=-Xmx3328m-Dmapred。小孩Java语言选项=-Xmx4096m-Dmapreduce。地图记忆力mb=5120脚本。清管器

我没什么主意了。。。有什么建议吗?

2016-03-26 08:05:06087信息[主]亚马逊。电子病历。韵律学。MetricsSaver:1将HDFSReadBytes 63个原始值聚合为5个聚合值,总计5个2016-03-26 08:05:17518致命[主]组织。阿帕奇。hadoop。映射。YarnChild:运行子级java时出错。lang.OutOfMemoryError:Java上的Java堆空间。util。阵列。org上的copyOf(Arrays.java:2271)。阿帕奇。hadoop。io。文本组织的setCapacity(Text.java:266)。阿帕奇。hadoop。io。文本在org追加(Text.java:236)。阿帕奇。hadoop。util。LineReader。org上的readDefaultLine(LineReader.java:243)。阿帕奇。hadoop。util。LineReader。org上的readLine(LineReader.java:174)。阿帕奇。hadoop。mapreduce。lib。输入LineRecordReader。org上的nextKeyValue(LineRecordReader.java:185)。阿帕奇。猪内置。文本加载器。org上的getNext(TextLoader.java:58)。阿帕奇。猪后端。hadoop。executionengine。mapReduceLayer。PigRecordReader。org上的nextKeyValue(PigRecordReader.java:204)。阿帕奇。hadoop。映射。MapTask$NewTrackingRecordReader。org上的nextKeyValue(MapTask.java:565)。阿帕奇。hadoop。mapreduce。任务MapContextImpl。org上的nextKeyValue(MapContextImpl.java:80)。阿帕奇。hadoop。mapreduce。lib。地图WrappedMapper$上下文。org上的nextKeyValue(WrappedMapper.java:91)。阿帕奇。hadoop。mapreduce。映射器。在org上运行(Mapper.java:152)。阿帕奇。hadoop。映射。MapTask。在org上运行NewMapper(MapTask.java:796)。阿帕奇。hadoop。映射。MapTask。在org上运行(MapTask.java:342)。阿帕奇。hadoop。映射。YarnChild 2美元。在java上运行(YarnChild.java:172)。安全AccessController。javax上的doPrivileged(本机方法)。安全授权。主题doAs(Subject.java:415)位于org。阿帕奇。hadoop。安全用户组信息。doAs(UserGroupInformation.java:1657)位于org。阿帕奇。hadoop。映射。YarnChild。main(YarnChild.java:166)

2016-03-26 08:05:17621信息[主]组织。阿帕奇。hadoop。度量2.impl。MetricsSystemImpl:正在停止MapTask metrics系统。。。2016-03-26 08:05:17622信息[云观察]组织。阿帕奇。hadoop。度量2.impl。MetricsSinkAdapter:cloudwatch线程中断。2016-03-26 08:05:17625信息[主]组织。阿帕奇。hadoop。度量2.impl。MetricsSystemImpl:MapTask metrics系统已停止。2016-03-26 08:05:17625信息[主]组织。阿帕奇。hadoop。度量2.impl。MetricsSystemImpl:MapTask metrics系统关闭完成。

共有1个答案

扶珂
2023-03-14

我已经找到了我为什么会有这个问题。在我的文本文件中,我有几行字符为“^@^@^@^@^@^@^@^@^@”,这会生成很长的行。一旦移除,它就可以正常工作

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

 类似资料:
  • 我面临一些关于内存问题的问题,但我无法解决它。非常感谢您的帮助。我不熟悉Spark和pyspark功能,试图读取大约5GB大小的大型JSON文件,并使用 每次运行上述语句时,都会出现以下错误: 我需要以RDD的形式获取JSON数据,然后使用SQLSpark进行操作和分析。但是我在第一步(读取JSON)本身就出错了。我知道要读取如此大的文件,需要对Spark会话的配置进行必要的更改。我遵循了Apac

  • 我们正在将web应用程序从内存缓存中的临时解决方案迁移到apache ignite集群,其中运行webapp的jboss作为客户端节点工作,两个外部vm作为ignite服务器节点工作。 当用一个客户机节点和一个服务器节点测试性能时,一切正常。但在集群中使用一个客户端节点和两个服务器节点进行测试时,服务器节点会出现OutOfMemoryError崩溃。

  • 问题内容: 这是声明Java数组的常用方法: 但是此数组正在使用堆空间。有没有一种方法可以使用像c ++这样的堆栈空间来声明数组? 问题答案: 一言以蔽之。 存储在堆栈中的唯一变量是基元和对象引用。在您的示例中,引用存储在堆栈上,但它引用堆上的数据。 如果由于要确保清理内存而问来自C ++的问题,请阅读有关垃圾回收的信息。简而言之,Java自动处理清理堆中的内存以及堆栈中的内存。

  • 我在用grails跑步https://github.com/Netflix/ice但我只是无法让服务器运行,出现以下错误: |错误2014-06-06 14:52:55978[localhost-startStop-1]错误上下文。GrailsContextLoader-初始化应用程序时出错:com。谷歌。常见的util。同时发生的ExecutionError:java。lang.OutOfMem

  • 可能没有多少开发人员像我一样面临这个问题<但是我想分享我已经解决了将近一个月的解决方案 我使用Kubernetes和docker compose,此Webflux服务(容器)设置了内存限制1g

  • 在Ubuntu中,当我运行hadoop示例时: 在日志中,我得到的错误为: 信息映射。JobClient:任务Id:尝试\u 201303251213\u 0012\u m\u000000 \u 2,状态:失败错误:Java堆空间13/03/25 15:03:43信息映射。JobClient:任务Id:trunt\u 201303251213\u 0012\u m\00000 1\u 2,状态:F