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 作业的引导文件的路径是啥