【问题标题】:Mapreduce job consuming more resource and changing queueMapreduce 作业消耗更多资源和更改队列
【发布时间】:2018-06-05 12:44:42
【问题描述】:
我有一个运行超过 1.7 亿条记录的 MapReduce 作业。这导致消耗 98% 的队列资源和 89% 的集群资源。管理团队建议他们创建具有有限配置的新队列,我应该将我的工作推入该队列。
这里有问题,我有:-
1- 如何将我的 mapreduce 作业(“hadoop jar”)推送到新队列的最小更改?
2- 由于新创建的队列资源有限,如果队列的容量已满怎么办?是否会导致长期运行或作业失败?
3- 是否有任何其他最佳方法可以防止作业消耗所有资源,如果作业运行时间稍长,我们就可以了。
请指教。任何帮助都会很棒。
【问题讨论】:
标签:
hadoop
mapreduce
bigdata
hadoop2
hortonworks-data-platform
【解决方案1】:
如果您使用的是容量/公平共享调度程序,并且您的管理员分配了一个队列:
第一个场景(容量):
然后会发生的是,这项工作需要很长时间才能完成,但不会失败。
如果您的作业消耗了它的所有资源,而另一个队列有一些资源没有被任何其他作业使用,那么您当前的作业也可以使用这些资源。
为了提高性能,您可以增加节点管理器的数量,这样资源也会增加,此外,作业将分布在更多数量的节点上,从而降低延迟。
第二种情况(公平分享)
在这种情况下,
假设您有一个 100% 资源的队列,第一个作业将消耗所有资源,如果有其他作业进入,则资源将除以作业数,即总资源/否。的工作。
同样,只要提供了该作业所需的最低资源,该作业就会继续运行。但是,时间消耗会更多,这对您来说不是问题。