YARN:与簇大小相比,如何使用大量映射器运行MapReduce作业

时间:2014-04-28 18:47:31

标签: hadoop mapreduce scheduling yarn

我使用MapReduce作业进行单节点Hadoop测试设置,启动96个映射器和6个减速器。在迁移到YARN之前,这项工作表现稳定但正常。随着YARN的开始,它开始100%挂起,其中大多数地图选择器正在等待'状态。

作业实际上是6个子作业(16个映射器+每个1个减速器)。此配置反映了生产过程顺序。所有这些都在单个JobControl下。对于具有少量节点和与群集大小相比较大的作业的情况,我是否需要检查或最佳实践?

当然,我不是关于性能,而是能够为开发人员传递这项工作的能力。最糟糕的情况是,我可以通过'来减少工作。分组子工作,但我不想这样做,因为在生产中没有理由这样做,我希望测试和生产顺序是一样的。

当我迁移到YARN时,调度程序已更改为FairScheduler,目前它是唯一的选项,因为我运行Cloudera并且Cloudera强烈建议不要使用除fair scheduler之外的任何内容。因此,不能选择切换到FIFO调度程序。

除了重新设计工作'

之外,在我的情况下还有其他选择

1 个答案:

答案 0 :(得分:1)

目前解决了我的问题,即每个用户禁用排队'逻辑(切换到单个队列)并使用分配文件限制正在运行的应用程序的数量。根据{{​​3}},这允许为每个队列配置几乎所有需要的东西。

以下是实际步骤:

  • yarn.scheduler.fair.user-as-default-queue设置为false。
  • 在Cloudera经理的队列动态资源分配'默认'已更改,因此队列允许不超过2个正在运行的应用程序足够用于单节点设计测试工具。在开源中,这将是对分配文件的更正。

现在按需要工作。保留其他所有内容,包括默认策略不变。