EMR Hadoop 长时间运行的作业被杀死

Posted

技术标签:

【中文标题】EMR Hadoop 长时间运行的作业被杀死【英文标题】:EMR Hadoop long running Job gets killed 【发布时间】:2019-11-01 01:59:28 【问题描述】:

当我使用一个映射器运行 ​​Sqoop 时,我有一个 EMR 集群,用于将 700 万条记录查询作为 Avro 文件传输到 S3。 30 分钟(+- 5 分钟)后,地图任务有时会被杀死,有时只是保持运行状态(永不结束),但会创建另一个地图任务并将其更改为运行状态,就像替换前一个任务一样,并且该作业永远不会结束。如果我更改查询以返回大约 100 万条记录,则作业正常结束。查看日志我只发现了这个

2019-10-31 10:20:29,991 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Killing taskAttempt:attempt_1572476771816_0004_m_000000_4004 because it is running on unusable node:ip-10-0-2-41.us-east-2.compute.internal:8041

有人可以为此提供解决方案吗?

【问题讨论】:

【参考方案1】:

您需要将mapreduce.task.timeout 设置为0。根据https://hadoop.apache.org/docs/r2.8.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml:

如果任务既不读取输入,也不写入输出,也不更新其状态字符串,任务将终止前的毫秒数。值 0 禁用超时。

我认为 Sqoop 不会让 YARN 知道它仍在运行,因此映射器会被杀死。

【讨论】:

我将此属性设置为更高的数字和零,并且作业像以前一样被终止:(

以上是关于EMR Hadoop 长时间运行的作业被杀死的主要内容,如果未能解决你的问题,请参考以下文章

AWS EMR 文件已存在:Hadoop 作业读取和写入 S3

EMR Hadoop Pig 作业错误“创建作业配置内部错误”

在 Amazon EMR 中运行的 Pig 作业的引导文件的路径是啥

如何防止 Elastic Beanstalk 上长时间运行的作业在不阻止缩减的情况下终止?

Spark流式传输作业不会删除随机播放文件

如何在 Amazon EMR 集群上远程提交 hadoop MR 作业