我是Hadoop的新手,并尝试在具有32核心的服务器上设置hadoop 2.2.0。 64GB内存和8个磁盘,当我调整文件'yarn-site.xml'时,我发现当我添加
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>40960</value>
</property>
到'yarn-site.xml'并运行:
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 10 5
我收到错误:
14/01/23 19:42:55 INFO mapreduce.Job: Task Id : attempt_1390524052844_0002_m_000002_0, Status : FAILED
Exception from container-launch:
org.apache.hadoop.util.Shell$ExitCodeException:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:464)
...
at java.lang.Thread.run(Thread.java:744)
但是无论如何都要完成任务,但如果我跑了
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 20 5
会有很多这样的错误,任务会停在那里,永远不会完成。
但是如果我从'yarn-site.xml'中删除该属性,那么每件事都可以正常工作。但是我需要设置这个属性,因为默认值是8192MB,我想充分利用mem。
任何人都可以帮助我吗?提前谢谢。
答案 0 :(得分:0)
发现它是最大进程数限制为1024,我将其设置为13172,它现在终于有效了。如果您在单个Linux服务器上运行hadoop并想使用它,请务必检查此设置。
对此感到困扰一个星期,希望这篇文章可以帮助别人。
BTW,使用'ulimit -a'来查看linux中的限制
答案 1 :(得分:0)
我也遇到过这个错误,但是通过检查$HADOOP_HOME/etc/hadoop/mapred-site.xml
解决了这个错误。最后我发现mapreduce.jobhistory.webapp.address
被设置为错误值。