MapReduce任务失败求助:1个Map任务失败,容器退出码143
Hadoop MapReduce任务Map节点失败排查求助
集群与问题概述
- 集群配置:由1个Master节点、3个Slave节点组成的4节点Hadoop集群
- 任务失败情况:运行MapReduce任务时失败,任务因Map任务终止,状态详情:failedMaps:1、failedReduces:0、killedMaps:0、killedReduces:0
已收集到Yarn UI错误截图、Yarn完整错误信息文件,以及关键日志片段如下:
关键日志片段
2022-07-28 06:16:55,185 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: 已接收完成的容器 container_1658988882858_0001_01_000120 2022-07-28 06:16:55,185 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: 来自attempt_1658988882858_0001_m_000080_0的诊断报告:[2022-07-28 06:16:54.401]容器被ApplicationMaster终止。 [2022-07-28 06:16:54.414]根据请求终止容器。退出码为143 [2022-07-28 06:16:54.421]容器以非零退出码143退出。 2022-07-28 06:16:55,185 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: 已接收完成的容器 container_1658988882858_0001_01_000121 2022-07-28 06:16:55,185 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: 来自attempt_1658988882858_0001_m_000082_0的诊断报告:[2022-07-28 06:16:54.422]容器被ApplicationMaster终止。 [2022-07-28 06:16:54.432]根据请求终止容器。退出码为143 [2022-07-28 06:16:54.434]容器以非零退出码143退出。 2022-07-28 06:16:55,185 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: 已接收完成的容器 container_1658988882858_0001_01_000122 2022-07-28 06:16:55,185 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: 来自attempt_1658988882858_0001_m_000087_0的诊断报告:[2022-07-28 06:16:54.423]容器被ApplicationMaster终止。 [2022-07-28 06:16:54.432]根据请求终止容器。退出码为143 [2022-07-28 06:16:54.434]容器以非零退出码143退出。 2022-07-28 06:16:55,185 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: 已接收完成的容器 container_1658988882858_0001_01_000125 2022-07-28 06:16:55,185 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: 来自attempt_1658988882858_0001_m_000000_3的诊断报告:[2022-07-28 06:16:54.215]容器被ApplicationMaster终止。 [2022-07-28 06:16:54.310]根据请求终止容器。退出码为143 [2022-07-28 06:16:54.311]容器以非零退出码143退出。 2022-07-28 06:16:55,185 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: 已接收完成的容器 container_1658988882858_0001_01_000123 2022-07-28 06:16:55,185 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: 来自attempt_1658988882858_0001_m_000016_3的诊断报告:[2022-07-28 06:16:54.231]容器被ApplicationMaster终止。 [2022-07-28 06:16:54.348]根据请求终止容器。退出码为143 [2022-07-28 06:16:54.384]容器以非零退出码143退出。
初步分析与排查建议
退出码143对应Linux的SIGTERM信号,说明容器进程被主动终止,常见原因及排查方向:
- 资源不足:检查YARN配置中的内存参数(如
yarn.nodemanager.resource.memory-mb、mapreduce.map.memory.mb),确认Map任务申请的内存是否超过节点可用资源,是否触发NodeManager的内存阈值kill机制 - 节点负载问题:查看失败Map任务所在Slave节点的系统负载(用
top命令查看CPU、内存使用率),确认是否存在资源耗尽情况 - 任务超时或抢占:检查YARN的任务超时配置(如
mapreduce.task.timeout),是否因任务执行超时被ApplicationMaster终止;同时确认集群是否存在其他高优先级任务抢占资源 - 任务逻辑异常:查看该失败Map任务的详细执行日志,确认是否在处理数据时出现内存溢出、数据格式异常等问题
内容的提问来源于stack exchange,提问作者js_executor
相关产品推荐
相关产品推荐

