长期运行的EMR Hadoop作业被杀死

时间:2019-11-01 01:59:28

标签: hadoop yarn sqoop amazon-emr

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

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 个答案:

答案 0 :(得分:0)

您需要将mapreduce.task.timeout设置为0。根据{{​​3}}:

  

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

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