Hadoop Mapper因为"Container killed by the ApplicationMaster"而失败。

7 浏览
0 Comments

Hadoop Mapper因为"Container killed by the ApplicationMaster"而失败。

我正在尝试在Hadoop上执行一个map reduce程序。\n当我将作业提交到Hadoop单节点集群时,作业被创建但是失败了,显示错误信息为“Container killed by the ApplicationMaster”。\n输入的文件大小为10MB。\n当我使用相同的脚本和400KB大小的输入文件时,作业成功了。但是对于10MB大小的输入文件,失败了。\n完整的日志显示如下:\n

    15/05/29 09:52:16 WARN util.NativeCodeLoader: Unable to `load native-  hadoop library for your platform... using builtin-java classes      where applicable
Submitting job on the cluster...
15/05/29 09:52:17 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
15/05/29 09:52:18 INFO input.FileInputFormat: Total input paths to process : 1
15/05/29 09:52:18 INFO mapreduce.JobSubmitter: number of splits:1
15/05/29 09:52:19 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1432910768528_0001
15/05/29 09:52:19 INFO impl.YarnClientImpl: Submitted application application_1432910768528_0001
15/05/29 09:52:19 INFO mapreduce.Job: The url to track the job: http://localhost:8088/proxy/application_1432910768528_0001/
15/05/29 09:52:19 INFO mapreduce.Job: Running job: job_1432910768528_0001
15/05/29 09:52:29 INFO mapreduce.Job: Job job_1432910768528_0001 running in uber mode : false
15/05/29 09:52:29 INFO mapreduce.Job:  map 0% reduce 0%
15/05/29 09:52:41 INFO mapreduce.Job:  map 100% reduce 0%
15/05/29 10:03:01 INFO mapreduce.Job:  map 0% reduce 0%
15/05/29 10:03:01 INFO mapreduce.Job: Task Id : attempt_1432910768528_0001_m_000000_0, Status : FAILED
AttemptID:attempt_1432910768528_0001_m_000000_0 Timed out after 600 secs
Container killed by the ApplicationMaster.
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143

\n我的mapper触发了另一个程序来处理我的输入文件。被mapper触发的程序通常会消耗大量的内存。\n所以请在这方面给我帮助。

0
0 Comments

Hadoop Mapper 出现 "Container killed by the ApplicationMaster" 错误的原因可能是由于以下几个问题:

1. Reduce 任务数量过少。可以通过增加 reducers 的数量来解决此问题。例如,可以将 mapreduce.job.reduces 设置为 10:`mapreduce.job.reduces=10`。

2. Reduce 堆内存不足。可以通过增加 reduce 的堆内存大小来解决此问题。例如,可以将 mapreduce.reduce.java.opts 设置为 -Xmx2014m:`mapreduce.reduce.java.opts=-Xmx2014m`。

3. 在运行时通过命令行指定固定数量的 reducers。可以使用 `-D mapreduce.job.reduces=10` 来指定所需的 reducers 数量。

4. 在代码中配置 JobConf 变量来设置 mapper 和 reducer 的数量。例如,可以使用以下代码来设置 reducers 数量为 10:

Configuration conf = new Configuration();
Job job = new Job(conf);
job.setNumReduceTasks(10); // 10 reducers

此外,还可以将文件分割成更小的大小,以避免内存问题。

如果仍然出现问题,请检查 yarn 日志并将日志内容提供出来。

0
0 Comments

在Hadoop中,如果出现"Hadoop Mapper is failing because of 'Container killed by the ApplicationMaster'"的问题,可以通过以下方法解决。

首先,需要在yarn-site.xml文件中添加以下属性,并重新启动虚拟机(VM)。


   yarn.nodemanager.vmem-check-enabled
   false
   Whether virtual memory limits will be enforced for containers


   yarn.nodemanager.vmem-pmem-ratio
   4
   Ratio between virtual memory to physical memory when setting memory limits for containers

以上就是解决"Hadoop Mapper is failing because of 'Container killed by the ApplicationMaster'"问题的方法。

0