运行 YARN 上的 Hadoop 作业 - 终止容器
Running Hadoop jobs on YARN - Killing container
我在 YARN 上 运行ning 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.
看来我应该更改堆限制。我不明白这么小的工作怎么可能需要这么大的堆?
YARN 是使用 Ambari 默认设置安装的,因此我没有更改任何参数。这是一个有 4 台机器的小型集群,其中 3 台用作 DataNodes/NodeManagers(并且有暂时未使用的 RegionServers)。每个工人有 4GB 的 RAM 和 4 个内核。
具体问题是什么,如何解决?
此外,如果有任何参考可以帮助我了解如何设置和配置小型集群(例如最多 10 台机器),我将不胜感激。我的意思是要使用多少 RAM 和 CPU。
在我看来,被杀死的容器是 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 or Tuning the Cluster for MapReduce v2 (YARN).
这样的指南进行操作
我在 YARN 上 运行ning 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.
看来我应该更改堆限制。我不明白这么小的工作怎么可能需要这么大的堆?
YARN 是使用 Ambari 默认设置安装的,因此我没有更改任何参数。这是一个有 4 台机器的小型集群,其中 3 台用作 DataNodes/NodeManagers(并且有暂时未使用的 RegionServers)。每个工人有 4GB 的 RAM 和 4 个内核。
具体问题是什么,如何解决?
此外,如果有任何参考可以帮助我了解如何设置和配置小型集群(例如最多 10 台机器),我将不胜感激。我的意思是要使用多少 RAM 和 CPU。
在我看来,被杀死的容器是 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 or Tuning the Cluster for MapReduce v2 (YARN).
这样的指南进行操作