gpt4 book ai didi

python - 亚马逊弹性 MapReduce - SIGTERM

转载 作者:太空狗 更新时间:2023-10-29 22:16:31 26 4
gpt4 key购买 nike

我有一个 EMR 流作业 (Python),它通常工作正常(例如,10 台机器处理 200 个输入)。然而,当我针对大型数据集(12 台机器处理总共 6000 个输入,每个输入大约 20 秒)运行它时,经过 2.5 小时的处理后,我得到以下错误:

java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 143
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:372)
at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:586)
at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:135)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)
at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:441)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:377)
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:1132)
at org.apache.hadoop.mapred.Child.main(Child.java:249)

如果我没看错的话,子进程失败,代码为 143,因为有人向流作业发送了 SIGTERM 信号。

我的理解对吗?如果是这样:EMR 基础设施何时会发送 SIGTERM?

最佳答案

我知道发生了什么,所以如果其他人遇到类似问题,这里有一些信息。

对我来说关键是查看“jobtracker”日志。这些位于 S3 上任务的日志/文件夹中,位于:

<logs folder>/daemons/<id of node running jobtracker>/hadoop-hadoop-jobtracker-XXX.log.

有多行如下:

2012-08-21 08:07:13,830 INFO org.apache.hadoop.mapred.TaskInProgress 
(IPC Server handler 29 on 9001): Error from attempt_201208210612_0001_m_000015_0:
Task attempt_201208210612_0001_m_000015_0 failed to report status
for 601 seconds. Killing!

所以我的代码超时了,它被杀死了(它超过了 10 分钟的任务超时)。 10 分钟我没有做任何 I/O,这当然不是预期的(我通常每 20 秒做一次 I/O)。

然后我发现了这篇文章:

http://devblog.factual.com/practical-hadoop-streaming-dealing-with-brittle-code

“在我们的一个科学项目中,我们有一些 Hadoop Streaming 作业在 ruby​​ 上运行并依赖 libxml 来解析文档。这造成了一场完美的糟糕 Storm ——网络充满了非常糟糕的 html,而 libxml 偶尔会出现进入无限循环或彻底的段错误。在某些文档中,它总是段错误。”

它成功了。我一定遇到了其中一种“libxml 进入无限循环”的情况(我大量使用 libxml——只使用 Python,而不使用 Ruby)。

我的最后一步是触发跳过模式(此处的说明:Setting hadoop parameters with boto?)。

关于python - 亚马逊弹性 MapReduce - SIGTERM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11970646/

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