【问题标题】:MapReduce job stopped executingMapReduce 作业停止执行
【发布时间】:2016-03-06 22:22:59
【问题描述】:

我想在 Hadoop 集群上运行基于 TeraSort 的基准测试。脚本正在运行,首先它处于运行状态,但几分钟后它卡在Accepted 状态和FinalStatus 未定义。我想,这可能是资源问题,所以我像上面一样修改了yarn-site.xml。

<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>8192</value>
  <description>Amount of physical memory, in MB, that can be allocated for containers.</description>
</property>

<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>2048</value>
</property>

又是同样的问题。您还可以看到上面有关此过程的一些图表。当作业的进度条显示在 ~9-15 % 时,它会停止。

【问题讨论】:

  • 您的数据节点(RAM、CUP 内核等)的配置是什么?我认为您在配置中设置了非常高的值,而您的物理硬件不符合该配置。
  • RAM: 32 GB - 16 GB CPU: 4 cores - 4 cores Disk: 120 GB - 30 GB

标签: hadoop mapreduce benchmarking cloudera-cdh cloudera-manager


【解决方案1】:

请也验证为这些参数设置的值:

yarn.scheduler.maximum-allocation-mb、mapreduce.map.memory.mb、mapreduce.map.java.opts、mapreduce.reduce.memory.mb、mapreduce.reduce.java.opts

以 yarn.scheduler.minimum-allocation-mb 开始,为 512MB。这将有助于调度程序以较小的增量为任务分配内存。

更新 1: 这个链接将有助于理解一些事情: https://www.mapr.com/blog/best-practices-yarn-resource-management

此外,根据您的环境设置输入拆分大小。 为了获得最佳读取性能,您的输入拆分大小和块大小应该相同。

【讨论】:

  • 我增加了这些值,但在尝试运行新作业时收到错误消息。 MAP capability required is more than the supported max container capability in the cluster. Killing the Job. mapResourceRequest: &lt;memory:8192, vCores:1&gt; maxContainerCapability:&lt;memory:2048, vCores:4&gt;
  • 我已将此规则用于值:mapreduce.map.memory.mb &lt; yarn.nodemanager.resource.memory-mb &lt; yarn.scheduler.maximum-allocation-mb
  • 感谢您的链接!您认为哪些是基准测试的最佳值?
  • 这取决于机器/集群中的内存和cpu资源。反复试验会有所帮助!
  • 对集群进行基准测试取决于集群中可用的资源。由于您使用的是纱线,它取决于内存和 cpu 资源。告诉我们以下细节。你有多少个节点?每个节点上的可用内存是多少? nodemanager 是否在所有这些节点上运行?如果没有,运行 nodemanager 的节点上可用的内存和 CPU 是多少?您可以从 Resourcemanager Web UI 获取可用资源的详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
相关资源
最近更新 更多