我在YARN上运行Hadoop作业时遇到了问题,特别是在Ambari上。我是Hadoop的新手,已写过MR工作,但没有集群管理经验。
我正在尝试为一个小的输入文件(例如1.4MB)运行WordCount示例,并且大多数时候我得到如下的异常:
Application application_1453983463294_0005 failed 2 times due to AM Container for appattempt_1453983463294_0005_000002 exited with exitCode: -104
For more detailed output, check application tracking page:http://hdp-master.nissatech.local:8088/cluster/app/application_1453983463294_0005Then, click on links to logs of each attempt.
Diagnostics: Container [pid=23429,containerID=container_1453983463294_0005_02_000001] is running beyond physical memory limits. Current usage: 264.6 MB of 256 MB physical memory used; 1.9 GB of 537.6 MB virtual memory used. Killing container.
似乎我应该改变堆限制。我不明白为如此小的工作需要多少堆?
使用Ambari默认设置安装YARN,因此我没有更改任何参数。这是一个包含4台计算机的小型集群,其中3台用作DataNodes / NodeManagers(并且具有此时未使用的RegionServers)。每个工作人员都有4GB RAM和4个核心。
具体问题是什么以及如何解决?
此外,我还要感谢任何可以帮助我了解如何设置和配置小型集群(例如最多10台机器)的参考资料。我指的是使用多少RAM和CPU。
答案 0 :(得分:0)
在我看来,被杀的容器是AM,而不是工作。这将是应用程序管理器,换句话说就是在你的Yarn上运行的“map-reduce”应用程序。这意味着无论WordCount示例多么简单,它都不是违规容器。
您可以查看yarn.app.mapreduce.am.resource.mb
的配置值吗? default为1.5GB,您的群集似乎配置为不允许容器超过256Mb。配置的yarn.nodemanager.resource.memory-mb
是什么?
我不确定Ambari如何配置您的群集资源,但看起来您必须手动调整它。请遵循How to Plan and Configure YARN and MapReduce 2 in HDP 2.0或Tuning the Cluster for MapReduce v2 (YARN)等指南。