当前位置: 首页 > 面试题库 >

Hadoop Mapper因“ ApplicationMaster杀死容器”而失败

司马钱明
2023-03-14
问题内容

我正在尝试在Hadoop上执行map reduce程序。

当我将工作提交到hadoop单节点集群时。正在创建作业,但消息失败

“被ApplicationMaster杀死的容器”

使用的输入大小为10 MB。

当我使用输入文件400 KB的相同脚本时,它成功了。但是输入大小为10 MB的输入文件失败。

在我的终端中显示的完整日志如下。

    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

我的映射器在这里触发另一个程序,该程序将在这里处理我的输入文件。由映射器触发的程序通常会占用大量内存。

因此,请在这方面帮助我。


问题答案:

在以下属性中添加yarn-site.xml并重新启动VM

<property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
   <value>false</value>
   <description>Whether virtual memory limits will be enforced for containers</description>
</property>

<property>
   <name>yarn.nodemanager.vmem-pmem-ratio</name>
   <value>4</value>
   <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>


 类似资料:
  • 问题内容: 我无法杀死或停止任何泊坞窗容器。我已允许非特权用户运行Docker命令。并且工作正常。但是我无法停止其他任何容器。 我得到了: 与sudo相同的错误。同时,所有容器都可以成功运行,但是要停止它们,只能完全重新引导系统。 Docker撰写示例:#使用postgres / example用户/密码凭证版本:“ 3.1” Docker信息: 问题答案: AppArmor(应用程序装甲)是Li

  • 问题内容: 我有以下内容: 执行并运行后,我得到以下信息: 到目前为止,一切似乎都很好。 在我使用如下所示: 所有这些实际上应该做的是: 如果我输入,则容器将转发请求。 如果我输入,则容器将转发请求。 如果我输入,则容器将转发请求。 现在,如果尝试任何操作,我都会得到帮助。 问题答案: 我能够找出解决方案,结果发现它是愚蠢的,没有出现在任何日志中,我很难理解。 以下是更新的文件。 不知道此时是否需

  • 错误: 内存不足,Java运行时环境无法继续。本机内存分配(mmap)无法映射71827456字节以提交保留内存。可能的原因:系统在32位模式下没有物理RAM或交换空间,遇到了进程大小限制。可能的解决方案:减少系统上的内存负载增加物理内存或交换空间检查交换备份存储是否已满在64位OS上使用64位Java减少Java堆大小(-xmx/-xms)减少Java线程数量减少Java线程堆栈大小(-xs)设

  • 在命令行中运行时,会出现以下失败 在肯定的情况下-报告说 null 谢谢你的帮助

  • 问题内容: 我的目标是编写一个运行python脚本的docker映像,该脚本会生成很多充满随机数的csv文件,完成后将这些文件写入外部存储驱动器,然后退出容器。假设它写入了很多这样的csv文件,以致它们无法存储到内存中。 我担心的是容器遇到错误并退出(或由用户退出),然后创建了一堆必须手动清除的垃圾文件的情况。 第一个解决方案是将快速驱动器(如SSD)直接安装到容器中并对其进行写入。完成后,它将数

  • 问题内容: 我有一个来自docker网站官方指南的简单示例。 我运行以下命令: 然后从创建的容器中获取一些输出: 然后,我查找容器的运行过程: 接下来,我尝试杀死容器的第一个过程: 但是,在我做完之后,没有任何改变。进程仍然有效,并且每秒输出“ hello”。我怎么了 问题答案: 重现您的情况时,我会看到和之间的PID不同。当您执行命令时,将在容器内执行=>应使用容器的pid。否则,在这种情况下,