![](/img/trans.png)
[英]How wordCount mapReduce jobs, run on hadoop yarn cluster with apache tez?
[英]YARN: How to run MapReduce jobs with lot of mappers comparing to cluster size
我有一个带有MapReduce作业的1节点Hadoop测试设置,该设置启动了96个映射器和6个reducer。 在迁移到YARN之前,此工作稳定但正常。 使用YARN,它开始挂起100%,大多数映射器处于“待定”状态。
工作实际上是6个子工作(每个16个映射器+ 1个reducer)。 此配置反映了生产过程的顺序。 所有这些都在单个JobControl下。 对于这种情况,与集群大小相比,节点数量少且作业量相对较大,是否需要检查任何配置或最佳实践?
当然,我与性能无关,而只是为开发人员传递这份工作的能力。 最坏的情况是我可以“减少工作”以分组子工作,但是我不想这样做,因为在生产中没有理由这样做,并且我希望测试和生产顺序相同。
当我迁移到YARN时,将Scheduler更改为FairScheduler,并且这是我运行Cloudera的唯一选择,并且Cloudera强烈建议您不要使用任何东西,而要使用fair scheduler
。 因此,切换到FIFO调度程序不是一种选择。
在我看来,除了“重新设计工作”之外,还有其他选择吗?
目前,通过禁用“每个用户的队列”逻辑(切换到单个队列)和使用分配文件限制正在运行的应用程序数量,解决了我的麻烦。 根据http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/FairScheduler.html的要求,这几乎可以为每个队列配置所需的任何内容。
以下是实际步骤:
yarn.scheduler.fair.user-as-default-queue
设置为false。 现在可以根据需要工作了。 保留所有其他内容,包括默认策略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.