如何将 Hadoop MapReduce 作业限制为一定数量的节点?

Posted

技术标签:

【中文标题】如何将 Hadoop MapReduce 作业限制为一定数量的节点?【英文标题】:How to limit a Hadoop MapReduce job to a certain number of nodes? 【发布时间】:2015-04-29 10:53:41 【问题描述】:

所以,基本上我有一个有 4 个数据节点的系统。但是,为了检查我的 hadoop 应用程序的可扩展性,我想用 1、2 和 4 个节点对其进行测试。那么,如何将 hadoop 使用的节点数限制为 1 或 2。我使用的是 hadoop 2.5.1,但我没有系统的管理员权限。另外,如何控制一个节点hadoop使用的核数?

【问题讨论】:

你检查过hadoop文档吗?我确信它是自给自足的。 @ChetanKinger 我很确定这样的事情不存在。你只有两个选择,编写一个调度程序来限制 n 个节点的放置,或者关闭剩余的节点并运行你的实验。 【参考方案1】:

您需要管理员权限才能完成所有操作

如何将 hadoop 使用的节点数限制为 1 或 2。

Decommission 2-3 个节点

我怎样才能控制hadoop为一个节点使用的核心数量

在 yarn-site.xml 中设置下面的配置,为每个节点分配 8 个 vcore

<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>8</value>
</property>

同时更新 capacity-scheduler.xml 中的 yarn.scheduler.capacity.resource-calculator 因为 DefaultResourceCalculator 只使用内存。

  <property>
    <name>yarn.scheduler.capacity.resource-calculator</name>
    <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
    <description>
      The ResourceCalculator implementation to be used to compare
      Resources in the scheduler.
      The default i.e. DefaultResourceCalculator only uses Memory while
      DominantResourceCalculator uses dominant-resource to compare
      multi-dimensional resources such as Memory, CPU etc.
    </description>   </property>

【讨论】:

以上是关于如何将 Hadoop MapReduce 作业限制为一定数量的节点?的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop中mapreduce作业日志是如何生成的

如何从 Eclipse 调试 hadoop mapreduce 作业?

如何在Hortonworks沙箱Hadoop平台中运行mapreduce作业

在 Hadoop 中链接多个 MapReduce 作业

怎么在hadoop上部署mapreduce

使用 mapred 或 mapreduce 包创建 Hadoop 作业哪个更好?